Войти
ПрограммированиеФорумГрафика

Математическая библиотека для физики и графики..и.т.д ! (4 стр)

Страницы: 1 2 3 4 5 6 7 Следующая »
#45
14:57, 5 фев. 2018

werasaimon
> P.S : что делает эта дериктива __attribute__((aligned(8))) .

Выравнивает экземпляр юниона/структуры на стеке на границу 64 бит (последние три цифры адреса - 000). Помогает подсказать компилятору использовать aligned-версии SIMD инструкций.


#46
15:40, 5 фев. 2018

werasaimon
>
> Может кто подскажет в чёмь разница между file.h и file.hpp?
Нету. .hpp обычно юзают для шаблонных библиотек. В .h пишут объявление класса, в .hpp определение.

#47
19:17, 5 фев. 2018

/A\
> а если будет так:
>
> struct Vec {
> T x, y, z, w;
> };
> struct Arr {
> T v[4];
> };
> // sizeof(Vec) != sizeof(Arr)
>
> то твой код сломается.

это где такое возможно?

werasaimon
> приставка unsigned для исключения не надо , потому что [-index] лутше вообще
> запретить такое обращения к элементу, видь с точки зрения математики это не
> верно

для 32битного числа:
(unsigned)(-1)  == 0xffffffff
(unsigned)(-2)  == 0xfffffffe
(unsigned)(-3)  == 0xfffffffd
и так далее, а это всегда больше, чем 3. Поэтому можно обойтись одной проверкой вместо двух.

#48
19:57, 5 фев. 2018

0xc0de
> это где такое возможно?
Внезапно, вчера в моем коде такое случилось)
Хотя больше похоже было на баг компилятора, так как он в компайл тайме рассчитывал одно смещение, а в рантайме другое более правильное, так что хз.
Но никто не гарантирует что компилятор не повставляет пустоты между полями, зато есть гарантия что не будет пустот между элементами массива.

#49
(Правка: 21:43) 21:35, 5 фев. 2018

0xc0de
> для 32битного числа:
> (unsigned)(-1)  == 0xffffffff
> (unsigned)(-2)  == 0xfffffffe
> (unsigned)(-3)  == 0xfffffffd
> и так далее, а это всегда больше, чем 3. Поэтому можно обойтись одной проверкой
> вместо двух.
>
>
Это не верно, с точки зрения математики . Проще говоря индекс должен всегда быть натуральным числом .
Иначе теоретический можно буде  выйти за приделы нулеф_0 ,
Ну для этого конечно надо чтоб на компютере было сверхбесконечность памяти , что в реальном мире не возможно!


nonamezerox
> Выравнивает экземпляр юниона/структуры на стеке на границу 64 бит (последние
> три цифры адреса - 000). Помогает подсказать компилятору использовать
> aligned-версии SIMD инструкций.
А что там с кратностю 8 , 16 .. или как это роботает ?
P.S: И вообще какого черта этим не занимается компилятор ?

#50
22:07, 5 фев. 2018

werasaimon

Для индексов ИСПОЛЬЗОВАТЬ ТИП size_t И ТОЛЬКО ЕГО

#51
3:55, 6 фев. 2018
nonamezerox
Я тему напомню, что-ли.
#52
(Правка: 9:14) 8:44, 6 фев. 2018

FordPerfect

https://habrahabr.ru/company/pvs-studio/blog/81222/

https://www.viva64.com/ru/a/0004/#ID0ENGAM
https://www.viva64.com/ru/a/0004/#ID0EA6BM

А  тот срач на 27 страниц я видел и он совсем не о  том.

#53
10:46, 7 фев. 2018

nonamezerox
> Для индексов ИСПОЛЬЗОВАТЬ ТИП size_t И ТОЛЬКО ЕГО
А для пирименых с плавающей точкой , что использовать?

#54
14:19, 7 фев. 2018

/A\
> Но никто не гарантирует что компилятор не повставляет пустоты между полями

Я всегда думал, что для выравнивания добавляются дополнительные байты в конец структуры, но никак не между полями.

#55
14:21, 7 фев. 2018

werasaimon
> Это не верно, с точки зрения математики

Ты программу пишешь или что? :) Что не верно для математики, может быть верно для языка программирования.

#56
15:58, 7 фев. 2018

0xc0de
> Ты программу пишешь или что? :) Что не верно для математики, может быть верно
> для языка программирования
Я же пишу математическую библиотеку, а в математики правила игры (аксиомы) сторого определенны , их нарушать не можно . А что там может язык программирования  меня  мало иинтересует!
Это проблемы розроботчиковь языка программирования !

#57
16:18, 7 фев. 2018

werasaimon
> А что там может язык программирования  меня  мало иинтересует!
с таким подходом только ты будешь пользоваться этой библиотекой

#58
(Правка: 23:14) 23:06, 7 фев. 2018

denesik
> с таким подходом только ты будешь пользоваться этой библиотекой
В математики правила игры уточнялись 2-тысичилетия а то и больше, а правила игры в программировании ещё даже не розроботаны как следует ! А если я пишу математическую библиотеку , это значит я должен  принять её правила . Это же математика тут одно следует из другого , а третие  с первого и второго и.т.д . Я не могу делать что мне или разработчикам языка программирования  вздумаеться. Иначе я пользователя библиотеки завиду в заблуждения, видь я его буду банально обманывать.

P.S: например glm прикрасна с точки зрения програмирования онна быстрая , красивая, много функций и.т.д . Но в тоже время glm с точки зрения тензорной-математики банально пуста , почти все функции в ней это дублирования одного и тоже только с разными параметрами входа выхода , и , это сделано только  ради простоты использования библиотеки . И с моей точки зрения,  это усложнения системы лишние , видь всем известно чем проще система тем она лутьше!

Зачем в glm не симтричные матрицы, ну тобишь 2×3 3×2 ..?

#59
23:35, 7 фев. 2018

Скоро появиться библиотеки для Helloworld'a

Страницы: 1 2 3 4 5 6 7 Следующая »
ПрограммированиеФорумГрафика