Gaussian elimination: Difference between revisions

Content added Content deleted
Line 1,469: Line 1,469:


mult:: Num a => [[a]] -> [[a]] -> [[a]]
mult:: Num a => [[a]] -> [[a]] -> [[a]]
mult uss vss = map (foldl (zipWith (+)) ts . zipWith (\vs u -> map (u*) vs) vss) uss
mult uss vss = map ((\xs -> if null xs then [] else foldl1 (zipWith (+)) xs). zipWith (\vs u -> map (u*) vs) vss) uss
where ts = map (const 0).concat $ take 1 vss


gauss::[[Double]] -> [[Double]] -> [[Double]]
gauss::[[Double]] -> [[Double]] -> [[Double]]