Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- eval :: [Int] -> [Int] -> Double -> Double
- eval [] [] x = 0
- eval (a:as) (b:bs) x =
- da * (x**db) + eval as bs x
- where da = fromIntegral a
- db = fromIntegral b
- solve' :: Double -> Double -> [Int] -> [Int] -> [Double]
- solve' left right [] [] = [0, 0]
- solve' left right a b =
- if left >= right
- then [0, 0]
- else [area, volume]
- where area = area_curr + area_rest
- volume = volume_curr + volume_rest
- area_curr = fx * dx
- volume_curr = pi * dx * fx*fx
- area_rest = head eval_rest
- volume_rest = last eval_rest
- eval_rest = solve' (left+dx) right a b
- dx = 0.001
- fx = eval a b left
Advertisement
Add Comment
Please, Sign In to add comment