Live data from Hacker News

Owl – An OCaml Numerical Library

github.com

11–20 of 48 posts

Re: Owl – An OCaml Numerical Library

#11
post #9

Earlier quoted context omitted.

Or the Web Ontology Language (OWL) [1] whose inconsistent acronym is not in fact a tribute to the spelling-challenged Owl character in Winnie-the-Pooh [2] [1] https://en.wikipedia.org/wiki/Web_Ontology_Language [2] https://en.wikipedia.org/wiki/List_of_Winnie-the-Pooh_charac...

Or the OWL region in Germany: https://en.wikipedia.org/wiki/Ostwestfalen-Lippe TLAs tend to be horribly overloaded and confusing without a very obvious context.

Or the nocturnal bird.

Re: Owl – An OCaml Numerical Library

#12
post #9

Earlier quoted context omitted.

Or the OWL region in Germany: https://en.wikipedia.org/wiki/Ostwestfalen-Lippe TLAs tend to be horribly overloaded and confusing without a very obvious context.

Or the nocturnal bird.

Or, apparently, this: http://www.urbandictionary.com/define.php?term=the%20owl (NSFW)

Re: Owl – An OCaml Numerical Library

#14
post #10

Wow, this even supports Algorithmic Differentiation! https://github.com/ryanrhymes/owl/wiki/Tutorial:-Algorithmic... (although "only" forward and reverse mode)

Slightly off topic sorry, but how Algorithm Differentiation usually implemented? Do you just apply the chain rule to an AST, or is there something more complex you have to do?

Re: Owl – An OCaml Numerical Library

#15
post #6

I looked at OCaml a few years back for scientific computing, but was turned off by the global lock GC for multithreading (similar to python). Anyone know if this has been changed yet? Edit: doesn't look like this has changed, but there's an effort at https://github.com/ocamllabs/ocaml-multicore that is slowly making progress

IIRC, there was a PR preparing upstream ocaml for multicore. I think multicore capabilities will be here soon. Would things like LWT or async help you in any way?

> I think multicore capabilities will be here soon.

Just a word of caution to set expectations. The "will be here soon" status has been there for a while, to the extent that it now evokes memories of GNU Hurd, Duke Nukem Forever. It will be ready whenever it will be ready, its in good hands, but don't hold your breath, try to work around it for now.

Re: Owl – An OCaml Numerical Library

#16
post #15

Earlier quoted context omitted.

IIRC, there was a PR preparing upstream ocaml for multicore. I think multicore capabilities will be here soon. Would things like LWT or async help you in any way?

> I think multicore capabilities will be here soon. Just a word of caution to set expectations. The "will be here soon" status has been there for a while, to the extent that it now evokes memories of GNU Hurd, Duke Nukem Forever. It will be ready whenever it will be ready, its in good hands, but don't hold your breath, try to work around it for now.

Multicore is picking up pace, and there will be a paper on the formalised memory model at this year's OCaml Workshop in Oxford in September.

There are a series of milestones to hit: the runtime GC, the memory model, the low-level programming model using one-shot continuations, and how it affects libraries running over it (e.g. algebraic effects). Each of these have associated papers and talks (see the ocamllabs.ionews section), so it's not quite fair to compare it to Duke Nukem Forever :-)

Some quick links to recent papers: - memory model: http://kcsrk.info/papers/memory_model_ocaml17.pdf - programming model: http://kcsrk.info/papers/awkward_effects_ml17.pdf

Re: Owl – An OCaml Numerical Library

#17
post #10

Wow, this even supports Algorithmic Differentiation! https://github.com/ryanrhymes/owl/wiki/Tutorial:-Algorithmic... (although "only" forward and reverse mode)

Slightly off topic sorry, but how Algorithm Differentiation usually implemented? Do you just apply the chain rule to an AST, or is there something more complex you have to do?

Notice that AD is a different technique than symbolic differentiation, which is what we do with pen and paper to compute a derivative.

Wikipedia explains it properly, if a bit tersely: https://en.wikipedia.org/wiki/Automatic_differentiation

In the case of Owl, it would appear that you have to write your functions using a set of overloaded operators contained in module Maths here: https://github.com/ryanrhymes/owl/blob/master/lib/owl_algodi...

Those operators, as explained in the Wikipedia page, manipulate "dual numbers," which are pairs of (number, epsilon) with their own specific algebra.

Re: Owl – An OCaml Numerical Library

#18
post #10

Wow, this even supports Algorithmic Differentiation! https://github.com/ryanrhymes/owl/wiki/Tutorial:-Algorithmic... (although "only" forward and reverse mode)

Slightly off topic sorry, but how Algorithm Differentiation usually implemented? Do you just apply the chain rule to an AST, or is there something more complex you have to do?

[deleted]

Re: Owl – An OCaml Numerical Library

#19
post #12

Earlier quoted context omitted.

Or the nocturnal bird.

Or, apparently, this: http://www.urbandictionary.com/define.php?term=the%20owl (NSFW)

This chain is just a little bit too long. Just a little bit. Also most of the OWL in this chain I just don't know (not the bird the rest)

Re: Owl – An OCaml Numerical Library

#20
This is going to be extremely useful! I just recently settled on OCaml as my language of choice for most projects, after working with dozens of others, from C to Haskell.

I was actually looking for a good numerical library, supporting complex numbers, matrix operations, and multi-dimensional arrays. I'm looking forward to using and contributing to this one!

Post reply on HN