scala - 为复数定义一个类是否有意义,其中实部/虚部使用 Numeric[T] 而不是具体类型?

标签 scala math numbers numeric complex-numbers

会不会喜欢

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

有意义,而不是使用 Double 编写 Complex 类s, 一个使用 Long s, 一个使用 BigInt s,这样每个人都可以选择自己需要的号码类型?

与非通用方法相比,性能如何?

最佳答案

目前,Numeric不是 @specialized .所以使用它的通用版本会受到装箱和拆箱的影响,性能会大大降低。这是一篇很好的博客文章,其中包含性能测量:

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

但是,你可以直接写一个 @specialized不使用 Numeric 的复数类的版本并获得所有好处。

从严格实用的角度来看,我不确定理解带有整数部分的复数的用法是什么......

关于scala - 为复数定义一个类是否有意义,其中实部/虚部使用 Numeric[T] 而不是具体类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6568936/

相关文章:

java - 在原始图像中显示使用 Rosetta 代码霍夫变换找到的线条

math - 计算 4 维向量之间的欧几里德距离

java - Number.intValue 轮次

c - 如何计算范围号 1 到 n 中 0 或 1 的总出现次数?

javascript - 在 jquery 循环中将数字添加到运行总计中

scala - 用自然语言(Scala)枚举列表的最佳方法是什么?

scala - 在使用 Ensime 全局搜索和 Emacs --no-window 时,如何让 ENTER 转到所选类型或方法?

c# - 以最佳方式检查算术字符串括号对称性

Scala类型约束不允许为空

swing - 我的 scala.swing 有什么问题?