-
Notifications
You must be signed in to change notification settings - Fork 17
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
Todo list discussion #25
Comments
Hi Rob, About the I think it could be a good idea to "test" having |
Hi Benoit,
Interesting! Given that my 3rd area of interest is finite elements I have a *slight* preference for having ε₁, ε₂, and ε₁ε₂ not equal to 0. I’m not quite sure about your sentence below:
This would mean that things like ε₂ * sparse([1, 2], [1, 2], ones(2)) would not result an empty sparse matrix because ε₂ > 0
Can I rephrase that as “This means that …” in the current implementation. Or is that currently only the case for abs?
What works best for your publication? Are they planning to change DualNumbers? I do think we should be consistent.
Now the docs are working, we should document in a new section (CONSIDERATIONS?) what you summarize below. Similarly I need to move VERSIONS and STEPBYSTEP into the docs and maybe move some of the notes in VERSIONS to CONSIDERATIONS.
After 27 years in California (15 years Palo Alto & 12 years La Jolla) we now split our time between Denver and Washington, DC. But until the middle of last year we were regularly in Corona del Mar where our youngest son lived before he moved back to DC.
Best,
Rob J Goedman
[email protected]
… On Nov 25, 2018, at 21:36, Benoit Pasquier ***@***.***> wrote:
Hi Rob,
About the ==, and isequal overloads. After a few discussions on slack, I now have a slightly better general view on how Julia packages treat dual numbers. ForwardDiff.jl choses that Dual{Real} <: Real
(with ForwardDiff.Dual(0, 1) == 0 and isequal(ForwardDiff.Dual(0, 1), 0) while HyperDualNumbers (and DualNumbers) have Dual{Real} <: Number (with Dual(0, 1) == 0 but not isequal(Dual(0, 1), 0). I think the DualNumbers and ForwardDiff packages are set on going for the ForwardDiff way, i.e., with Dual{Real} <: Real and treat ε == 0. Thus, I think it could be a good idea to "test" having ε₁, ε₂, and ε₁ε₂ not equal to 0 in HyperDualNumbers (this is what I sort of did with the overload of abs so that abs(-x^2) is correct for example). This would mean that things like ε₂ * sparse([1, 2], [1, 2], ones(2)) would not result an empty sparse matrix because ε₂ > 0 (while it currently gives the empty sparse matrix). However this would also mean that we do things a bit differently from ForwardDiff.jl. What do you think?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub <#25 (comment)>, or mute the thread <https://github.com/notifications/unsubscribe-auth/AADL6LSzmt_2bdCnJp-UjI9MS0d1gvkcks5uy2_TgaJpZM4YtuxT>.
|
What I mean is that opting for julia> A = Matrix(1.0I, 2, 2)
2×2 Array{Float64,2}:
1.0 0.0
0.0 1.0
julia> ε₁ * A # multiplying A by ε₁ works as expected
2×2 Array{Hyper{Float64},2}:
0.0+1.0ε₁+0.0ε₂+0.0ε₁ε₂ 0.0+0.0ε₁+0.0ε₂+0.0ε₁ε₂
0.0+0.0ε₁+0.0ε₂+0.0ε₁ε₂ 0.0+1.0ε₁+0.0ε₂+0.0ε₁ε₂
julia> spA = sparse(A) # try the same thing with sparse matrix
2×2 SparseMatrixCSC{Float64,Int64} with 2 stored entries:
[1, 1] = 1.0
[2, 2] = 1.0
julia> ε₁ * spA # multiplying spA by ε₁ gives an empty sparse matrix
2×2 SparseMatrixCSC{Hyper{Float64},Int64} with 0 stored entries For
Anything works :) None of these implementation details are really relevant for the type of paper I am writing — I just want to properly acknowledge the packages that I use!
I don't know. I think they might make
This is what bothers me most. I don't think there is any rush, but I thought I should lay out the suggestion sooner rather than later. It mostly has to do with how HyperDualNumbers will "percolate" through generic code code with I'm currently in Irvine but I should go (back) to Sydney next year :) |
Thank you, get it now. I would be ok to publish the current version with this consideration documented. |
Hi Benoit, shall we release version 4.0.0? |
Hi Rob, OK! Done! |
Great, thanks! I noted NaNMath was missing from REQUIRE so added it and re-released. Let's see if that fixes the JuliaCIBot issue. |
Oops, and Calculus of course! |
Hi Benoit. not completely sure what is happening but it seems to me the JuliaCIBot has evolved now to the point where it checks packages that depend on the package being registered. This creates a problem as both packages export \varepsilon_1 etc. It needs It does require qualification. Reexport might not work I think because the epsilon discussions are not equal (I think). Maybe using a different symbol? Interesting package! |
Hi Rob, I think something wnet wrong in the formatting of your last post... I'm not sure I understood the problem. What other packages export |
Oh I did not know it would test my matrix packages! OK I will remove those from it :) |
I'm not this will work but we'll see :) |
Thanks! |
Sorry for not mentioning which package! What do you mean by "I will remove those from it"? My assumption is (but I could be way off) that JuliaCIBot creates a list of up to 10 packages which rely on the a package and tests if these still work. What surprises me is that in that case we're updating the major revision number which indicates the changes can break things. |
I removed the definitions of We might have to force a second run of the JuliaCIBot by deleting the release and making a new one. (But I guess you have been doing that already for adding the package dependencies in |
Hi Benoit, yes, I'll wait with creating a new release for HyperDualMatrixTools.jl to pass. Not sure why the 'test fail' output points to line 14 in runtests.jl of HDMT while on my system it fails on line 22 (inside factorize()). |
Hi Rob, I asked around on slack and it turns out in cases like this it has to be manually accepted: So I wrote a comment saying that breaking HyperDualMatrixTools is intentional and I will release a new version of it once HyperDualNumbers gets registered. |
Thanks Benoit, seems we're done! |
Items on the list:
5.1 Split into 2 lists?
5.2 If accepted remove from HyperDualNumbers
The text was updated successfully, but these errors were encountered: