]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - tests/org.simantics.scl.compiler.tests/src/org/simantics/scl/compiler/tests/scl/Polynomials.scl
Fixed all line endings of the repository
[simantics/platform.git] / tests / org.simantics.scl.compiler.tests / src / org / simantics / scl / compiler / tests / scl / Polynomials.scl
index f4cd212932fba4c78726d67d64b68c7f2f73a71c..9455e8c57f45eb5c884f06655f0b85a8220ce5f6 100644 (file)
@@ -1,50 +1,50 @@
-import "Prelude"\r
-\r
-data Poly a = Poly [a]\r
-\r
-normalize l = go (length l)\r
-  where\r
-    go i = if i > 0 && l!(i-1)==zero\r
-           then go (i-1)\r
-           else take i l \r
-\r
-instance (Additive a) => Additive (Poly a) where\r
-    zero = Poly []\r
-    Poly a + Poly b = \r
-        Poly ( \r
-            normalize (\r
-               zipWith (+) a b + \r
-                 if la > lb\r
-                 then drop lb a\r
-                 else drop la b\r
-            )\r
-        )\r
-          where\r
-            la = length a\r
-            lb = length b        \r
-\r
-instance (Ring a) => Ring (Poly a) where\r
-    one = Poly [one]\r
-    neg (Poly l) = Poly (map neg l)\r
-    a - b = a + (neg b)\r
-    Poly a * Poly b = \r
-        Poly ( if aDeg < bDeg\r
-               then [ segSum n 0        n    | n <- [0     ..aDeg]   ]\r
-                  + [ segSum n 0        aDeg | n <- [aDeg+1..bDeg]   ]\r
-                  + [ segSum n (n-bDeg) aDeg | n <- [bDeg+1..sumDeg] ]\r
-               else [ segSum n 0        n    | n <- [0     ..bDeg]   ]\r
-                  + [ segSum n (n-bDeg) n    | n <- [bDeg+1..aDeg]   ]\r
-                  + [ segSum n (n-bDeg) aDeg | n <- [aDeg+1..sumDeg] ]\r
-             )\r
-          where \r
-            aDeg = length a - 1\r
-            bDeg = length b - 1\r
-            sumDeg = aDeg + bDeg\r
-            segSum n low high = sum [ a!i * b!(n-i) | i <- [low..high] ]\r
-    fromInteger x = Poly [fromInteger x]\r
-            \r
-a = Poly [4.0,5.0,8.0,3.0,2.0,1.0]\r
-b = Poly [1.0,0.0,2.0,1.0]\r
-main = a * a + a * b + b * a + b * b - (a+b)*(a+b)\r
---\r
+import "Prelude"
+
+data Poly a = Poly [a]
+
+normalize l = go (length l)
+  where
+    go i = if i > 0 && l!(i-1)==zero
+           then go (i-1)
+           else take i l 
+
+instance (Additive a) => Additive (Poly a) where
+    zero = Poly []
+    Poly a + Poly b = 
+        Poly ( 
+            normalize (
+               zipWith (+) a b + 
+                 if la > lb
+                 then drop lb a
+                 else drop la b
+            )
+        )
+          where
+            la = length a
+            lb = length b        
+
+instance (Ring a) => Ring (Poly a) where
+    one = Poly [one]
+    neg (Poly l) = Poly (map neg l)
+    a - b = a + (neg b)
+    Poly a * Poly b = 
+        Poly ( if aDeg < bDeg
+               then [ segSum n 0        n    | n <- [0     ..aDeg]   ]
+                  + [ segSum n 0        aDeg | n <- [aDeg+1..bDeg]   ]
+                  + [ segSum n (n-bDeg) aDeg | n <- [bDeg+1..sumDeg] ]
+               else [ segSum n 0        n    | n <- [0     ..bDeg]   ]
+                  + [ segSum n (n-bDeg) n    | n <- [bDeg+1..aDeg]   ]
+                  + [ segSum n (n-bDeg) aDeg | n <- [aDeg+1..sumDeg] ]
+             )
+          where 
+            aDeg = length a - 1
+            bDeg = length b - 1
+            sumDeg = aDeg + bDeg
+            segSum n low high = sum [ a!i * b!(n-i) | i <- [low..high] ]
+    fromInteger x = Poly [fromInteger x]
+            
+a = Poly [4.0,5.0,8.0,3.0,2.0,1.0]
+b = Poly [1.0,0.0,2.0,1.0]
+main = a * a + a * b + b * a + b * b - (a+b)*(a+b)
+--
 []
\ No newline at end of file