相关疑难解决方法(0)

在类型定义中声明数组属性的大小

我目前有一个带有数组属性的类型

immutable foo
    a::Int64
    b::Int64
    x::Array{Float64,1} # One dimension array of Float 64, but no length info
end
Run Code Online (Sandbox Code Playgroud)

我知道该数组将始终包含100个Float64元素.有没有办法在类型注释中传递此信息?也许类似于声明实例化数组大小的方式类似x = Array(Float64, 100)

julia

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

在朱莉娅中最佳地传递固定尺寸阵列的尺寸

我想写一个以矩阵作为输入的函数.这是一个复杂项目中的频繁低级调用,因此尽可能快地使这个功能具有潜在的严重性能影响.因为速度对我来说非常重要,我正在使用类型,FixedSizeArrays因为我知道这将节省内存使用量.但我经常知道输入矩阵的某些属性,我不确定我是否正在充分利用它.

这是一个简单的例子.想象一下,我希望尽可能快地完成以下功能:

using FixedSizeArrays

function foo( input::Mat )
# NB: Mat is the FixedSizeArrays matrix type
  return 2 * input
end
Run Code Online (Sandbox Code Playgroud)

显然这是一个微不足道的例子,但这不是重点.关键是我对矩阵的维度有所了解input:它总是只有两列,我总是可以在运行时指定行数.这似乎是可以传递给编译器以使我的代码更快的信息.我可以将它作为定义大小的参数传递input吗?这是一个不起作用的例子,但应该让你知道我正在尝试做什么.

function bar( int::N, thismat::Mat{N,2,Float64} )
  return 2 * thismat
end
Run Code Online (Sandbox Code Playgroud)

有这样的东西我可以做吗?如果可以的话,这会发挥作用吗?也许FixedSizeArrays已经做了所有可以完成的事情.谢谢你的想法!

performance julia fixed-size-types

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

标签 统计

julia ×2

fixed-size-types ×1

performance ×1