Advertisement
Guest User

Untitled

a guest
Dec 11th, 2017
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.77 KB | None | 0 0
  1. fun transp ([]::_) = []
  2. | transp [[x:real]] = [[x:real]]
  3. | transp rows =
  4. (map hd rows) :: transp (map tl rows);
  5.  
  6.  
  7. infix ++;
  8. local
  9. fun addL [] [] = [] |
  10. addL [x:real] [y:real] = [x+y]|
  11. addL (x::xs) (y::ys) = (x+y) :: addL xs ys
  12. in
  13. fun [] ++ [] = [] |
  14. [[x:real]] ++ [[y:real]] = [[x+y]] |
  15. (x::xs) ++ (y::ys) = addL x y::(xs++ys)
  16. end;
  17.  
  18. infix **;
  19. local
  20. fun sumMult ([],[]) = 0.0 |
  21. sumMult ((x::xs),(y::ys)) = x*y + sumMult (xs,ys)
  22. fun mulVec [] [] = []|
  23. mulVec [] _ = []|
  24. mulVec _ [] = []|
  25. mulVec [x:real] [[y:real]] = [x*y]|
  26. mulVec (w::ws) (z::ys) = sumMult(w::ws,z)::(mulVec (w::ws) ys)
  27.  
  28. in
  29.  
  30. fun [] ** []= [] |
  31. [] ** _ = [] |
  32. [[x:real]] ** [[y:real]] = [[x*y]] |
  33. (x::xs) ** b = (mulVec x (transp b)) :: (xs**b)
  34.  
  35. end;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement