glsl-0.0.0.1: src/Language/GLSL/Runtime/Math.hs
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -Wno-type-defaults #-}
module Language.GLSL.Runtime.Math where
import Prelude (Float, fromIntegral, max, min, (*), (-), (.), (/),
(<))
import qualified Prelude
floor :: Float -> Float
floor = fromIntegral . Prelude.floor
fract :: Float -> Float
fract x = x - floor x
mod :: Float -> Float -> Float
mod x y = x - y * floor (x/y)
clamp :: Float -> Float -> Float -> Float
clamp x a = min (max x a)
saturate :: Float -> Float
saturate x = clamp x 0 1
step :: Float -> Float -> Float
step a x = if x < a then 0 else 1
smoothstep :: Float -> Float -> Float -> Float
smoothstep a b x = let t = saturate ((x-a) / (b-a)) in t*t*(3-2*t)