Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Форум / Вычислить Sin и Cos (7 стр)

Вычислить Sin и Cos (7 стр)

Страницы: 13 4 5 6 7 8 Следующая »
foxesПостоялецwww12 апр. 201819:29#90
eDmk
> Да. У меня процентов 70 на асме написано.
> Потому что это это сингл, а мне и дабл нужен тоже.
Попробуй интеловскую либку дизассемблировать там все есть.
eDmkУчастникwww12 апр. 201819:37#91
1 frag / 2 deaths
Вот код с твоим APX.

Точность у него всего 1e-2. Не годится.
У нее уже на 3-м знаке расхождение.
http://rextester.com/DALIFZ95838

+ Показать

Вот графики:

+ Показать

Правка: 12 апр. 2018 20:14

eDmkУчастникwww12 апр. 201820:06#92
foxes
> Попробуй интеловскую либку дизассемблировать там все есть.
>
Зачем? У них в доке все написано как использовать FPU.
Это открытая информация.
DelfigamerПостоялецwww12 апр. 201820:54#93
eDmk
> Точность у него всего 1e-2. Не годится.
> У нее уже на 3-м знаке расхождение.
А зачем тебе точность выше трёх знаков, если накапливать ошибки тебе на самом деле не нужно?
Или всё-таки нужно? Если да, то зачем ты их накапливаешь?

Правка: 12 апр. 2018 20:54

foxesПостоялецwww12 апр. 201821:06#94
eDmk
> Зачем? У них в доке все написано как использовать FPU.
> Это открытая информация.
Ты не понял, у них есть либка для векторных вычислений, там все как раз через полиномы и ряды реализовано.

например _mm_sin_pd - вычисление двух синусов с двойной точностью. Естественно этот алгоритм будет на SSE реализован, но его можно и для общих нужд написать.

Правка: 12 апр. 2018 21:13

eDmkУчастникwww12 апр. 201821:12#95
Delfigamer
> А зачем тебе точность выше трёх знаков?
А зачем тебе ноги. Ходи на руках. ППц.
Вам 10-13 лет?
DelfigamerПостоялецwww12 апр. 201821:15#96
foxes
Зачем дизасмить, Форд сюда нормальные сурсы glibc кидал, если нужен точный - там есть.
Едимке нужен точный, потому что у него зачем-то накапливаются ошибки с кучи синусов.
Я сначала не понял, что у него в #24 вообще происходит, но теперь, кажется, начинаю догадываться - он набирает оператор поворота через произведение маленьких операторов поворота, вместо того, чтобы накапливать угол/кватернион и делать один большой поворот.

eDmk
> А зачем тебе ноги. Ходи на руках. ППц.
> Вам 10-13 лет?
Просто выглядит так, будто ты пытаешься ногами приготовить яичницу.

Правка: 12 апр. 2018 21:16

foxesПостоялецwww12 апр. 201821:18#97
Delfigamer
> но теперь, кажется, начинаю догадываться - он набирает оператор поворота через
> произведение маленьких операторов поворота, вместо того, чтобы накапливать
> угол/кватернион и делать один большой поворот.
То есть он не матрицу, а вершины крутит?
DelfigamerПостоялецwww12 апр. 201821:26#98
foxes
> То есть он не матрицу, а вершины крутит?
А я и не знаю, чего он крутит, вот и сказал в общем - "оператор".
Видно только, что крутит криво.

Правка: 12 апр. 2018 21:27

FordPerfectПостоялецwww13 апр. 20183:14#99
Чуть более внятные версии, чем #68:
http://rextester.com/PKRZ63625

Правка: 13 апр. 2018 3:16

FordPerfectПостоялецwww13 апр. 20185:51#100
Они, впрочем, не совсем соответствуют стандарту.
Стандарт говорит
cosPi(n+1/2)=+0
sinPi(+0)=+0
sinPi(-0)=-0
sinPi(+n)=+0, n>0
sinPi(-n)=-0, n>0
и эти функции не взводят inexact exception на (полу)целых аргументах.

Правка: 13 апр. 2018 5:52

FordPerfectПостоялецwww13 апр. 201823:10#101
Во, вроде за исключением точности, остальным требованиям удовлетворяет:
http://rextester.com/HVVH76317

См. также https://stackoverflow.com/questions/42792939/implementation-of-si… -math-library .

FordPerfectПостоялецwww13 апр. 201823:12#102
Комментарии приветствуются.
eDmkУчастникwww14 апр. 20181:50#103
Да уже не надо. Сделал так:
+ Показать

Пока точности хватает.

AlikberovПостоялецwww14 апр. 20186:35#104
Шaг за шагом вычисляются синус и косинус.

Правка: 14 апр. 2018 6:38

Страницы: 13 4 5 6 7 8 Следующая »

/ Форум / Программирование игр / Общее

2001—2018 © GameDev.ru — Разработка игр