All Downloads are FREE. Search and download functionalities are using the official Maven repository.

cilib.syntax.DotProd.scala Maven / Gradle / Ivy

There is a newer version: 2.0.1-30-g5ca4090
Show newest version
package cilib
package syntax

import scalaz.{Foldable1, Functor, NonEmptyList}
import spire.implicits._
import spire.algebra._

import cilib.algebra._

object dotprod {
  implicit class DotProdSyntax[F[_], A](val x: F[A]) extends AnyVal {
    def ∙(a: F[A])(implicit D: DotProd[F, A]) = D.dot(x, a)
  }

  implicit class AlgebraSyntax[F[_], A](val x: F[A]) extends AnyVal {
    def normalize(implicit M: Module[F[A], Double], D: DotProd[F, A]) = Algebra.normalize(x)

    def magnitude(implicit D: DotProd[F, A]) = Algebra.magnitude(x)

    def orthonormalize(implicit F: Functor[F],
                       F2: Foldable1[F],
                       F3: Field[A],
                       A: NRoot[A],
                       D: DotProd[F, A],
                       M: Module[F[A], Double]) = Algebra.orthonormalize(NonEmptyList(x))
  }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy