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

Стандартная библиотека C ++ имеет черты типа, такие как is_arithmetic is_integral а также is_floating_point, но

  • комплексные числа являются арифметическими, но вы не можете, скажем, сравнить их друг с другом,
  • нет is_algebraic_number или же has_transcendents
  • нет is_well_ordered (хорошо, вы могли бы придираться и сказать, что все типы в «реальной жизни» хорошо перечисляются компьютером с помощью лексикографического представления памяти, поэтому в этом смысле они упорядочены, но вы понимаете, о чем я)
  • и т.п.

Кроме того, на передней панели функции, в то время как есть такие функции, как abs() а также fabs() (нет общей функции абсолютного значения шаблона), не похоже, что у нас нет ни функций расстояния, ни функций нормы и т. д.

Итак, в общем, кажется, что стандартная библиотека не очень хорошо подходит для алгебраических (/ топологических) рассуждений в коде.

Мои вопросы:

  • Хотя, безусловно, существуют специфичные для предметной области языки, в которых дела обстоят лучше (я полагаю, язык Mathmetica? Может быть, символика Matlab / Octave?), Это распространено среди языков программирования общего назначения?
  • Существуют ли инициативы или попытки изменить эту ситуацию, то есть расширить формальные математические аспекты стандартной библиотеки (в отличие от числовых, быстрой математики и т. Д.)?

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]