Neil Mitchell wrote:
Hi

A nice auxiliary would help:

showEqn :: Int -> [Double] -> String
showEqn i vs = ...
    where
          (add,ans) = (init vs, last vs)

Then you can half the complexity. There are probably a few useful
functions that aren't in the standard libraries (consperse, joinWith
etc) that you could make use of.

OK, I'll give that a go...

(Actually, at present it's an "augmented matrix", represented as [[Double]]. I'm thinking by making it a matrix and seperate vector, I could reduce the runtime quite significantly by making it much faster to get hold of the RHS.)

BTW, one *extremely* common function that I've never seen mentioned anywhere is this one:

 map2 :: (a -> b) -> [[a]] -> [[b]]
 map2 f = map (map f)

I cannot understand why this isn't already in the standard libraries...

You seem to be doing take 8 on the double - what if the double prints
out more information than this as the result of show?
1000000000000000000 could end up a bit smaller.

The contents of the matrix are random numbers between 0 and 100. The problems happen if one of the numbers turns out to be something like "3.5847368473587e-27" or something. Then it will look many thousands of times BIGGER! ;-)

Still, since Haskell seems to be devoid of any more advanced way of formatting numbers beyond low-level character jiggling...

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to