Live data from Hacker News

Viewing profile — mcabbott

mcabbott

HN member
Joined
Mon, Jan 14, 2019, 10:15 AM UTC
HN karma
105
Public activity
49 items

About mcabbott

https://github.com/mcabbott

Recent public activity

  1. comment
    Comment #44937444

    Covariant and contravariant indices would be the formal terms. I'm not really sure whether I've seen "upstairs" written down. Sub/superscript... strike me as the typographical term…

  2. comment
    Comment #44935858

    This doesn't really help with programming, but in physics it's traditional to use up- and down-stairs indices, which makes the distinction you want very clear. If input x has compo…

  3. comment
  4. comment
    Comment #41404867

    That's what Reactant.jl is aiming to do: Take the LLVM code from Julia and pipe to to XLA, where it can benefit from all the investment which make Jax fast. Same author as the more…

  5. comment
    Comment #40183597

    This is also how it works in Julia, where macros digest notation for einsum-like operations before compile-time. In fact the linked file's explanatory comment: (einsum (A i j) (B i…

  6. comment
    Comment #38521643

    using Unitful: m; foo(2.0m) With the above definition, this will give DimensionError: 2.0 m and 1.0 are not dimensionally compatible. Probably this means you should define `foo(x::…

  7. comment
    Comment #35481389

    Yes, it obeys enough algebraic laws that calling it a derivative is useful. But I don't think there's any underlying notion of small changes to something continuous. It is not the …

  8. comment
    Comment #35481332

    Or perhaps better "foreigner", legal alien, someone from over the border. The alien derivative is an operation which moves you from one sector to another. A bit like crossing a bra…

  9. comment
    Comment #33639833

    I presume so. Note that this pseudo-code is very nearly valid Julia code (with my package): @tullio (min) C[i,j] := A[i,k] + B[k,j]

  10. comment
    Comment #31399291

    Yes, although that seems like the easy half of this, making sure `struct NewNum The hard half seems to be correctness of functions which accept quite generic objects. For example w…

  11. comment
    Comment #31268917

    The unicode epsilon isn't in the public API, it's describing the 3rd positional argument. This was added recently, and for some reason the PR (1840) didn't fix the docs, which is b…

  12. comment
    Comment #31268460

    The struct's field name is `eta`, but this is an internal detail. Its constructor takes a positional-only argument, no public name. The greek letter is used in the documentation. A…

  13. comment
    Comment #31268421

    > > Learning rate (η): Amount by which gradients are discounted before updating the weights. > so this is already explicit to anyone who reads the documentation. The quibble in the…

  14. comment
    Comment #30976629

    On the GPU, operations which look like matrix multiplication are indeed quite slow. As you say there are many tricks, and Tullio doesn't (right now) know them. For operations which…

  15. comment
    Comment #30126945

    There is a discussion here: https://discourse.julialang.org/t/rust-julia-comparison-post... So far, a bug fix improves it 4700 min -> 150 min, changing the type stored -> 20 min, f…

  16. comment
    Comment #29916596

    Thanks for the references. We're trying to write up a paper about all this work, and (to us) it seems obvious that differential geometry is the right framework. What reverse mode A…

  17. comment
    Comment #29820047

    Some points have simple answers: * Support for using @copied s.x = 1 where s is an immutable struct. I believe the standard package for this is this: https://github.com/jw3126/Setf…

  18. comment
    Comment #27565242

    The big Alcoa press is 50_000 tons, not lbs. There are slightly larger ones now, 60, 75ktons. (22 tons is, of course, force that any rail yard could produce a century ago.)

  19. comment
    Comment #25727027

    The Julia translations of these might look as follows: using OffsetArrays cash_flows = zeros(0:max_time) altitude = zeros(Bool, -100:100) for I in eachindex(cash_flows) some_functi…

  20. comment
  21. comment
  22. comment
  23. comment
    Comment #24543261

    The goal of Tullio.jl is certainly not to beat MKL at its own game. But it can still be 4-5 times faster on some permutedims + matmul operations, by fusing them. Besides handling o…

  24. comment
    Comment #24314294

    Sure! The desire for fancier notation is from more complicated examples, the kind where you write elaborate comments to explain why you're permuting 3rd & 4th dim of B to line up w…

  25. comment