{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# OPTIONS_GHC -Wall #-}
module NumHask.Analysis.Banach
( Banach(..)
, Hilbert(..)
)
where
import NumHask.Algebra.Abstract.Action
import NumHask.Algebra.Abstract.Ring
import NumHask.Algebra.Abstract.Field
import NumHask.Analysis.Metric
class (ExpField (Actor h), Normed h (Actor h), DivisiveAction h) =>
Banach h where
normalizeL1 :: h -> h
normalizeL1 a = a ./ normL1 a
normalizeL2 :: h -> h
normalizeL2 a = a ./ normL2 a
class (Distributive (Actor h)) =>
Hilbert h where
infix 8 <.>
(<.>) :: h -> h -> Actor h