I did not know that you can define a function “func” using just “do” and “end”. This is amazing!!!
@inline function PDFP_setDefaultPrecision(prec::Int)
global DEFAULT_PRECISION[] = prec < 0 ? 0 : prec
end
function PDFP_temporarily_setDefaultPrecision(func::Function,prec::Int)
olddefaultprec = PDFP_getDefaultPrecision()
PDFP_setDefaultPrecision( prec )
func()
PDFP_setDefaultPrecision( olddefaultprec )
end
And using it like this
julia> println("Default Precision is ",PDFP_getDefaultPrecision() )
Default Precision is 16
julia> PDFP_temporarily_setDefaultPrecision(4) do
global result = inv([ PDFP(1) PDFP(2); PDFP(3) PDFP(4) ])
end;
julia> result
2×2 Array{PDFP,2}:
PDFP(1, 0, [2, 0, 0, 0]) PDFP(0, 0, [1, 0, 0, 0])
PDFP(0, 0, [1, 5, 0, 0]) PDFP(1, -1, [5, 0, 0, 0])