Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

specialized arithmetic and in-place functions #35

Open
kalmarek opened this issue Dec 31, 2019 · 8 comments
Open

specialized arithmetic and in-place functions #35

kalmarek opened this issue Dec 31, 2019 · 8 comments

Comments

@kalmarek
Copy link
Contributor

by doing promote stuff simple arithmetic allocates a lot:

julia> z = ArbComplex(2)
2.0 + 0im

julia> @time z+1;
  0.000023 seconds (11 allocations: 600 bytes)

by exploiting arbs acb_add_si this can be cut to

julia> @time z+1;
  0.000010 seconds (5 allocations: 272 bytes)

Mutable arithmetic/ funcions

I'd like to see three-argument arithmetic (along the lines of mul!(out, x, y)). (related: #6)

For all the functions wrapped through @eval (ex. most of elementary.jl) we could easily expose the two argument versions

f!(out, args...) = ... #ccall to arb
function f(args...)
    res = ... #allocate the result;
    f!(res, args...)
    return res
end

Again, this for the purpose of writing more functions and cutting on the allocations/time (especially handy when evaluating the integrand)

will you accept such changes?

@JeffreySarnoff
Copy link
Owner

JeffreySarnoff commented Dec 31, 2019 via email

@JeffreySarnoff
Copy link
Owner

JeffreySarnoff commented Dec 31, 2019 via email

@kalmarek
Copy link
Contributor Author

kalmarek commented Jan 1, 2020

yes, I by no means intend to replace promote versions; These are supposed to be the fast-track paths for Arb & Int arithmetic

@kalmarek
Copy link
Contributor Author

kalmarek commented Jan 1, 2020

do you know why arb has arf_mul in its docs, but the library does not export the symbol??

@JeffreySarnoff
Copy link
Owner

(just getting back into the game -- will ask)

@JeffreySarnoff
Copy link
Owner

and I will accept this as a PR

@kalmarek
Copy link
Contributor Author

kalmarek commented Jan 6, 2020

@JeffreySarnoff
Copy link
Owner

Yes, now I remember that. Good to have the work around. Please post that itself too.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants