我正在实现牛顿方法来在预编译的库中查找根 。 常见的情况是使用从Float64到Float64函数,我希望它的优化编译版本存在于库中。 当然,我也将实现类型的泛型版本,但是Julia需要通过签名区分方法的某种方式,以便它知道在运行时调用哪个方法。 当前,实现为: 尚未使用/调试。 ...
提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供 中文繁体 英文版本 中英对照 版本,有任何建议请联系yoyou2525@163.com。
我正在尝试在Julia中创建表示椭圆曲线上点的复合类型。 如果满足y ^ 2 == x ^ 3 + a * x + b或x和y都等于零,则点有效。 注意,后一种情况表示无穷远处的点。
我想出了以下代码,但无法弄清楚如何计算无穷大点。
IntOrNothing = Union{Int,Nothing}
struct Point
x::IntOrNothing
y::IntOrNothing
a::Int
b::Int
Point(x,y,a,b) = x == nothing || y == nothing || y^2 != x^3 + a*x + b ? error("Point is not on curve") : new(x,y,a,b)
end
我将为Point
定义两个内部构造函数,如下所示:
IntOrNothing = Union{Int,Nothing}
struct Point
x::IntOrNothing
y::IntOrNothing
a::Int
b::Int
Point(x::Nothing,y::Nothing,a,b) = new(x,y,a,b)
Point(x,y,a,b) = y^2 != x^3 + a*x + b ? error("Point is not on curve") : new(x,y,a,b)
end
因为我认为这最容易理解。
请注意,如果您调用Point(nothing,2,1,3)
,将会得到MethodError
Point(nothing,2,1,3)
但是我想从您的代码中您并不关心抛出的异常的类型,只要将异常抛出到无效数据上即可。
它能解决您的问题吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.