让struct ContentView: View {
@State var number: Int = 5
var body: some View {
VStack {
NumberPicker(format: "%02d", max: 20, value: $number)
Text("You picked \(number)")
}
}
}
是两个不同长度的向量。我需要建立一个包含元素struct NumberPicker: View {
var format: String = "%d"
var max: Int
@Binding var value: Int
var body: some View {
Picker("", selection: $value) {
ForEach(0..<max) { item in
Text(String(format: self.format, item))
}
}
.frame(width: 40, height: 175)
.clipped()
}
}
的矩阵,这意味着对于a, b
中的每一对元素,我都想乘以虚数单位,然后取指数。
好的,所以我拉出外部函数并编写
exp(-1i*a*b)
但是对于大向量a, b
,这很慢。我真的很惊讶它这么慢。我要做的只是建立矩阵-我什至没有在任何计算中使用它,但这太慢了。
是否有其他方法可以加快速度?
答案 0 :(得分:2)
您正在使用什么BLAS?默认值是很慢的。
您可以安装OpenBLAS,这明显更快。
在我的系统上运行
a <- runif(1e5, -2, 2)
b <- runif(2e3, -4,3)
t <- exp(-1i*tcrossprod(a, b))
耗时10秒,生成3Gb矩阵。