ImmutableFirstOrderOptimizationPackage
class ImmutableFirstOrderOptimizationPackage[DF, Vector]()(implicit space: CoordinateField[Vector, Double], canIterate: CanTraverseValues[Vector, Double], canMap: CanMapValues[Vector, Double, Double, Vector], canZipMap: CanZipMapValues[Vector, Double, Double, Vector], df: DF <:< DiffFunction[Vector]) extends OptimizationPackage[DF, Vector]