Hi Knights, As I regretfully pointed out earlier in [Fwd: Re: Computer Language Shootout] large search and simulations are not for Haskell. This is equally true with GHC 6.5 http://eric_rollins.home.mindspring.com/haskellAnt.html. Also there is much illusion about Haskell potential ease at handling mathematics. Yes Haskell is excellent for demonstration but trying to implement algorithms that would do trickier things is pretty tough. A thing where Haskell could potentially offer something that a regular CAS cannot is calculating a tensors with symbolic indices (without components) so that one could have components calculated for specific cases on the end of general calculation. Perhaps somebody more technical than me could take the challenge? It could lure theoretical physicists into Haskell which might pay back. One of them has recently provided Curry with the fastest compiler:-) Cheers, -Andrzej
Andrzej Jaworski wrote:
Hi Knights,
As I regretfully pointed out earlier in [Fwd: Re: Computer Language Shootout] large search and simulations are not for Haskell. This is equally true with GHC 6.5 http://eric_rollins.home.mindspring.com/haskellAnt.html.
After checking the code I must say this is not convincing at all. The code isn't optimized. That said, I think we can thank you for some more code to compare the speed with ML once someone has tuned it :)
Also there is much illusion about Haskell potential ease at handling mathematics. Yes Haskell is excellent for demonstration but trying to implement algorithms that would do trickier things is pretty tough. A thing
so far in my experience, it is the opposite. it takes a while to learn to think in the right way however.
where Haskell could potentially offer something that a regular CAS cannot is calculating a tensors with symbolic indices (without components) so that one could have components calculated for specific cases on the end of general calculation. Perhaps somebody more technical than me could take the challenge? It could lure theoretical physicists into Haskell which might pay back. One of them has recently provided Curry with the fastest compiler:-)
On 3/14/07, Andrzej Jaworski <himself@poczta.nom.pl> wrote:
A thing where Haskell could potentially offer something that a regular CAS cannot is calculating a tensors with symbolic indices (without components) so that one could have components calculated for specific cases on the end of general calculation.
I have a mathematics/theoretical physics background so I ought to understand what you're asking for but it's not quite clear in my mind. Could you elaborate on this a bit? For example I can't quite tell if you're talking about something that would subsume CAS into Haskell or would be an alternative to CAS. And I'm not exactly sure what you mean by "without components" because despite plenty of theorems being provable in a basis-free manner, when you want to calculate things you usually end up needing components. Maybe you could actually give an example of something you'd want to calculate or even sketch a couple of lines from an interaction with the system you imagine. -- Dan
I am glad you are interested Dan. I would give Haskell a clean start, particularly in the light of what Johan has just said. Calling external CAS engine (Matlab style) makes little sense since tensor work is done in external packages and Haskell has its own interesting libraries that could be turned into engine, e. g. Algebraic Domain Constructor (DoCon) based on functors, which guarantee higher level of needed abstraction than any other CAS but it unfortunately does not handle non-commutative algebra. If somebody extends this I will eat my previous mail:-) Calculating the components of a tensor is a straightforward process (this can be done with CAS) but manipulation of indicial tensor formulas is a different animal. Using symbolic indices on tensors simplifies tensor expressions, so for example A_{ij}S^{ij}-0, if (A) S are symmetric or anti-symmetric allowing for more complicated properties like linear and non-linear identities. Then preserving the indices in tensor symbolic form gives you - to use Haskell jargon - mach more expressive power. Such as typing an action functional to find the corresponding equations of motion. With indexed objects as symbolic indices you can generate component-wise calculations from symbolic input. Numerical indices will not allow for this. I do not intend to bore anybody with differential geometry but as I was pushed that far let me add that if Haskell was made to handle Riemannian geometry it could be useful in next generation machine learning research where logic, probability and geometry meet. Regards, -Andrzej
participants (3)
-
Andrzej Jaworski -
Dan Piponi -
Johan Henriksson