Имеет ли смысл определять класс для комплексных чисел, где реальные / мнимые части используют числовой [T] вместо конкретного типа? - PullRequest
4 голосов
/ 04 июля 2011

Хотелось бы что-то вроде

class Complex[T: Numeric](real: T, imag: T)

имеет смысл вместо написания класса Complex с использованием Double s, одного с использованием Long s, одного с использованием BigInt s, чтобы каждый мог выбрать нужный ему тип числа?

Как бы производительность сравнивалась с неуниверсальным подходом?

1 Ответ

4 голосов
/ 04 июля 2011

На данный момент Numeric не @specialized.Таким образом, общая версия, использующая ее, будет страдать от коробок и распаковок, а производительность будет значительно снижена.Вот хороший пост в блоге с измерениями производительности:

http://www.azavea.com/blogs/labs/2011/06/scalas-numeric-type-class-pt-2/

Однако вы можете напрямую написать @specialized версию вашего класса комплексных чисел без использования Numeric и получить всеВыгоды.

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

...