runnig

Area haskell

Sep 15th, 2015
162
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.66 KB | None | 0 0
  1. eval :: [Int] -> [Int] -> Double -> Double
  2. eval [] [] x = 0
  3. eval (a:as) (b:bs) x =
  4. da * (x**db) + eval as bs x
  5. where da = fromIntegral a
  6. db = fromIntegral b
  7.  
  8.  
  9. solve' :: Double -> Double -> [Int] -> [Int] -> [Double]
  10. solve' left right [] [] = [0, 0]
  11. solve' left right a b =
  12. if left >= right
  13. then [0, 0]
  14. else [area, volume]
  15. where area = area_curr + area_rest
  16. volume = volume_curr + volume_rest
  17. area_curr = fx * dx
  18. volume_curr = pi * dx * fx*fx
  19. area_rest = head eval_rest
  20. volume_rest = last eval_rest
  21. eval_rest = solve' (left+dx) right a b
  22. dx = 0.001
  23. fx = eval a b left
Advertisement
Add Comment
Please, Sign In to add comment