packages feed

dph-examples-0.5.1.1: real/NBody/Common/Util.hs

module Common.Util
	( magV
	, mulSV
	, normaliseV)
where
	
-- | The magnitude of a vector.
magV :: (Double, Double) -> Double
magV (x, y)	= sqrt (x * x + y * y)
	
-- | Multiply a vector by a scalar.
mulSV :: Double -> (Double, Double) -> (Double, Double)
mulSV s (x, y)	= (s * x, s * y)
	
-- | Normalise a vector, so it has a magnitude of 1.
normaliseV :: (Double, Double) -> (Double, Double)
normaliseV v	= mulSV (1 / magV v) v