LINUX.ORG.RU

[c++]каким должен быть скаляр


0

0

Решил поднять этот топик, тк для разработки требуется хороший, удобный скалярный тип для вычислений. Прошу помочь в критериях и методологии разработки. Для начала он должен удовлетворять таким простым требованиям - скаляр должен умещать «любое» число ( в том смысле что оно не должно быть ограничено интегральными типами, те возможно должно хранить void* ) - по-возможности, нужно отделить операции над типом от его представления. Тут нужно наверно пояснить. Вот допустим у нас есть числа А и Б. Я хочу чтобы можно было например складывать по модулю эти числа или может быть эти числа являются представлением рациональных чисел. Ну или допустим операция возведения в степень по модулю тоже. В общем я думаю, что даже если таких операций немного и может даже и нестоит их отделять от представления, но хотелось бы иметь возможность быстренько подменить некоторые операции и спокойно дальше пользоваться типом.

В общем хотелось бы услышать советы людей которые работали с вычислительными задачами и большими числами.


Решил поднять этот топик, тк для разработки требуется хороший, удобный скалярный тип для вычислений. Прошу помочь в критериях и методологии разработки. Для начала он должен удовлетворять таким простым требованиям
- скаляр должен умещать «любое» число ( в том смысле что оно не должно быть ограничено интегральными типами, те возможно должно хранить void* )
- по-возможности, нужно отделить операции над типом от его представления.
Тут нужно наверно пояснить. Вот допустим у нас есть числа А и Б. Я хочу чтобы можно было например складывать по модулю эти числа или может быть эти числа являются представлением рациональных чисел. Ну или допустим операция возведения в степень по модулю тоже. В общем я думаю, что даже если таких операций немного и может даже и нестоит их отделять от представления, но хотелось бы иметь возможность быстренько подменить некоторые операции и спокойно дальше пользоваться типом.

В общем хотелось бы услышать советы людей которые работали с вычислительными задачами и большими числами.

jeep ()

ты сейчас описал стандартную иерархию чисел из Haskell, например

jtootf ★★★★★ ()

ты условие не описал до конца

ключевой момент — какой тебе требуется полиморфизм

если без type erasure — то тебе вообще не нужен спец. тип для скаляра, пиши на плюсовых шаблонах, в качестве скаляров подойдут любые типы, у которых определены нужные операции

www_linux_org_ru ★★★★★ ()

я понял вопрос «каким должен быть скаляр» как «какой должна быть иерархия классов скалярных типов»

так вот, вполне возможно она вообще не нужа, все зависит от того, какой полиморфизм потребуется в задаче

www_linux_org_ru ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.