小编moo*_*lin的帖子

朱莉娅矩阵切片

如何对 Julia 矩阵进行切片以获得前 x 行?

我试过了

slicedMatrix = matrix[1 : x ; :]
Run Code Online (Sandbox Code Playgroud)

但我不断收到此错误

错误:LoadError:MethodError:没有方法匹配 typed_vcat(::Array{Float64,2}, ::StepRangeLen{Float64,Base.TwicePrecision{Float64},Base.TwicePrecision{Float64}}, ::Colon)

使用逗号代替分号没有帮助。

matrix julia

2
推荐指数
1
解决办法
412
查看次数

是否有 Kotest 断言来测试列表是否包含具有给定属性的某些元素?

我有两个具有一些共同特征的对象,我想对其进行比较

data class Pet(val colour: String, val owner: Human, val legCount: Int)
data class Car(val colour: String, val owner: Human, val isElectric: Boolean)
Run Code Online (Sandbox Code Playgroud)

我想断言 a 中的某些元素List<Car>包含与给定 具有相同颜色和所有者的元素Pet

这是一个假代码示例来说明我想要做什么:

cars.containsElementSatisfying { car ->
    pet.colour shouldBe car.colour
    pet.owner shouldBe car.owner
}
Run Code Online (Sandbox Code Playgroud)

我该如何使用 kotest 来做到这一点?我可以使用assertJ 的anySatisfy 断言来完成所需的功能。

unit-testing kotlin kotest

2
推荐指数
1
解决办法
4827
查看次数

必须按顺序发生的操作的处理器的延迟界限和吞吐量界限

我的教科书(计算机系统:程序员的观点)指出,当一系列操作必须严格按顺序执行时,就会遇到延迟界限,而吞吐量界限则表征​​处理器功能单元的原始计算能力。

课本5.5、5.6题介绍了这两种可能的多项式计算循环结构

double result = a[0];
double xpwr = x;
for (int i = 1; i <= degree; i++) {
    result += a[i] * xpwr;
    xpwr = x * xpwr;
}
Run Code Online (Sandbox Code Playgroud)

double result = a[degree];
double xpwr = x;
for (int i = degree - 1; i >= 0; i--) {
    result = a[i] + x * result;
}
Run Code Online (Sandbox Code Playgroud)

假设循环在具有以下执行单元的微体系结构上执行:

  • 一个浮点加法器。它的延迟为 3 个周期,并且是完全流水线化的。
  • 两个浮点乘法器。每个的延迟是 5 个周期,并且都是完全流水线化的。
  • 四个整数 ALU,每个都有一个周期的延迟。

为这个问题给出的浮点乘法和加法的延迟界限分别是 5.0 和 3.0。根据答案键,第一个循环的总循环延迟是每个元素 5.0 个周期,第二个是每个元素 8.0 个周期。我不明白为什么第一个循环不是 8.0。

似乎 a[i] …

performance cpu-architecture micro-optimization

1
推荐指数
1
解决办法
194
查看次数