numeric-prelude-0.4.2: An experimental alternative hierarchy of numeric type classes

Safe HaskellNone
LanguageHaskell98

Algebra.NormedSpace.Euclidean

Contents

Description

Abstraction of normed vector spaces

Synopsis

Documentation

class (C a, C a v) => Sqr a v where Source

Helper class for C that does not need an algebraic type a.

Minimal definition: normSqr

Methods

normSqr :: v -> a Source

Square of the Euclidean norm of a vector. This is sometimes easier to implement.

Instances

Sqr Double Double 
Sqr Float Float 
Sqr Int Int 
Sqr Integer Integer 
(Sqr a v, RealFloat v) => Sqr a (Complex v) 
Sqr a v => Sqr a [v] 
Sqr a b => Sqr a (T b) 
Sqr a b => Sqr a (T b) 
(Sqr a v0, Sqr a v1) => Sqr a (v0, v1) 
(Ord i, Eq a, Eq v, Sqr a v) => Sqr a (Map i v) 
(Sqr a v0, Sqr a v1, Sqr a v2) => Sqr a (v0, v1, v2) 
(C a, C a) => Sqr (T a) (T a) 
Sqr a v => Sqr (T a) (T v) 

normSqrFoldable :: (Sqr a v, Foldable f) => f v -> a Source

Default definition for normSqr that is based on Foldable class.

normSqrFoldable1 :: (Sqr a v, Foldable f, Functor f) => f v -> a Source

Default definition for normSqr that is based on Foldable class and the argument vector has at least one component.

class Sqr a v => C a v where Source

A vector space equipped with an Euclidean or a Hilbert norm.

Minimal definition: norm

Methods

norm :: v -> a Source

Euclidean norm of a vector.

Instances

C Double Double 
C Float Float 
C Int Int 
C Integer Integer 
(C a, Sqr a v, RealFloat v) => C a (Complex v) 
(C a, Sqr a v) => C a [v] 
(C a, Sqr a b) => C a (T b) 
(C a, Sqr a b) => C a (T b) 
(C a, Sqr a v0, Sqr a v1) => C a (v0, v1) 
(Ord i, Eq a, Eq v, C a, Sqr a v) => C a (Map i v) 
(C a, Sqr a v0, Sqr a v1, Sqr a v2) => C a (v0, v1, v2) 
C a v => C (T a) (T v) 

defltNorm :: (C a, Sqr a v) => v -> a Source

Instances for atomic types

Instances for composed types