Copyright | (c) Justus Sagemüller 2022 |
---|---|
License | GPL v3 |
Maintainer | (@) jsag $ hvl.no |
Stability | experimental |
Portability | portable |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
Documentation
class AdditiveMonoid h where Source #
Nothing
default zeroHV :: (Generic h, AdditiveMonoid (AMRep h)) => h Source #
addHVs :: h -> h -> h Source #
default addHVs :: (Generic h, AdditiveMonoid (AMRep h)) => h -> h -> h Source #
Instances
class AdditiveMonoid h => HalfSpace h where Source #
Nothing
type FullSubspace h :: Type Source #
type FullSubspace h = GenericFullSubspace h
type MirrorJoin h :: Type Source #
type MirrorJoin h = GenericMirrorJoin h
scaleNonNeg :: Ray h -> h -> h Source #
default scaleNonNeg :: (Generic h, HalfSpace (AMRep h), FullSubspace h ~ GenericFullSubspace h, Ray h ~ Ray (AMRep h)) => Ray h -> h -> h Source #
fromFullSubspace :: FullSubspace h -> h Source #
default fromFullSubspace :: (Generic h, HalfSpace (AMRep h), FullSubspace h ~ GenericFullSubspace h, Ray h ~ Ray (AMRep h)) => FullSubspace h -> h Source #
projectToFullSubspace :: h -> FullSubspace h Source #
default projectToFullSubspace :: (Generic h, HalfSpace (AMRep h), FullSubspace h ~ GenericFullSubspace h, Ray h ~ Ray (AMRep h)) => h -> FullSubspace h Source #
fullSubspaceIsVectorSpace :: ((VectorSpace (FullSubspace h), ScalarSpace (Scalar (FullSubspace h)), Scalar (FullSubspace h) ~ MirrorJoin (Ray h)) => r) -> r Source #
default fullSubspaceIsVectorSpace :: (VectorSpace (FullSubspace h), ScalarSpace (Scalar (FullSubspace h)), Scalar (FullSubspace h) ~ MirrorJoin (Ray h)) => ((VectorSpace (FullSubspace h), ScalarSpace (Scalar (FullSubspace h)), Scalar (FullSubspace h) ~ MirrorJoin (Ray h)) => r) -> r Source #
rayIsHalfSpace :: (HalfSpace (Ray h) => r) -> r Source #
mirrorJoinIsVectorSpace :: ((VectorSpace (MirrorJoin h), Scalar (MirrorJoin h) ~ MirrorJoin (Ray h)) => r) -> r Source #
default mirrorJoinIsVectorSpace :: (VectorSpace (MirrorJoin h), Scalar (MirrorJoin h) ~ MirrorJoin (Ray h)) => ((VectorSpace (MirrorJoin h), Scalar (MirrorJoin h) ~ MirrorJoin (Ray h)) => r) -> r Source #
fromPositiveHalf :: h -> MirrorJoin h Source #
default fromPositiveHalf :: (Generic h, HalfSpace (AMRep h), MirrorJoin h ~ GenericMirrorJoin h, Ray h ~ Ray (AMRep h)) => h -> MirrorJoin h Source #
fromNegativeHalf :: h -> MirrorJoin h Source #
default fromNegativeHalf :: (Generic h, HalfSpace (AMRep h), MirrorJoin h ~ GenericMirrorJoin h, Ray h ~ Ray (AMRep h)) => h -> MirrorJoin h Source #