From c40910c72193f64d797e8416b0dfa4fb89688c98 Mon Sep 17 00:00:00 2001 From: Jakob Odersky Date: Fri, 2 Nov 2012 12:57:41 +0100 Subject: rewrite implicit conversions to Saveable (it was unecessarily complicated) --- src/main/scala/scalam/package.scala | 17 ++++++++--------- src/main/scala/scalam/plotting/DataSet.scala | 3 ++- src/main/scala/scalam/plotting/Plot.scala | 3 ++- 3 files changed, 12 insertions(+), 11 deletions(-) diff --git a/src/main/scala/scalam/package.scala b/src/main/scala/scalam/package.scala index 7692daf..25b97df 100644 --- a/src/main/scala/scalam/package.scala +++ b/src/main/scala/scalam/package.scala @@ -42,17 +42,16 @@ package object scalam extends LowPriorityImplicits { } } - implicit def intDenseIsLoadable = denseMatrixIsLoadable[Int](_.toInt) - implicit def doubleDenseIsLoadable = denseMatrixIsLoadable[Double](_.toDouble) - implicit def floatDenseIsLoadable = denseMatrixIsLoadable[Float](_.toFloat) - implicit def byteDenseIsLoadable = denseMatrixIsLoadable[Byte](_.toByte) - implicit def longDenseIsLoadable = denseMatrixIsLoadable[Long](_.toLong) - implicit def booleanDenseIsLoadable = denseMatrixIsLoadable[Boolean](_.toBoolean) - - implicit def denseMatrixIsSaveable = (m: DenseMatrix[_]) => new Saveable { + implicit def intDenseMatrixIsLoadable = denseMatrixIsLoadable[Int](_.toInt) + implicit def doubleDenseMatrixIsLoadable = denseMatrixIsLoadable[Double](_.toDouble) + implicit def floatDenseMatrixIsLoadable = denseMatrixIsLoadable[Float](_.toFloat) + implicit def byteDenseMatrixIsLoadable = denseMatrixIsLoadable[Byte](_.toByte) + implicit def longDenseMatrixIsLoadable = denseMatrixIsLoadable[Long](_.toLong) + implicit def booleanDenseMatrixIsLoadable = denseMatrixIsLoadable[Boolean](_.toBoolean) + + implicit def denseMatrixIsSaveable(m: DenseMatrix[_]) = new Saveable { def save(out: scalax.file.Path) = { for (i <- 0 until m.rows) m(i, ::).valuesIterator.mkString("", " ", "\n") } } - } \ No newline at end of file diff --git a/src/main/scala/scalam/plotting/DataSet.scala b/src/main/scala/scalam/plotting/DataSet.scala index a886700..5125478 100644 --- a/src/main/scala/scalam/plotting/DataSet.scala +++ b/src/main/scala/scalam/plotting/DataSet.scala @@ -4,6 +4,7 @@ import scalam.m.ast.Identifier import scalax.file.Path import breeze.linalg.{ Vector, DenseVector } import scalam.io._ +import scala.language.implicitConversions case class DataSet(points: Seq[(Double, Double)], label: String, name: String) { @@ -21,7 +22,7 @@ object DataSet { def apply(points: Seq[(Double, Double)], label: String) = new DataSet(points, label, Identifier.makeValid(label)) - implicit val dataSetIsSaveable = (ds: DataSet) => new Saveable { + implicit def dataSetIsSaveable(ds: DataSet) = new Saveable { def save(out: scalax.file.Path) = for ((x, y) <- ds.points) yield out.write(x + " " + y + "\n") } diff --git a/src/main/scala/scalam/plotting/Plot.scala b/src/main/scala/scalam/plotting/Plot.scala index 2a50d70..8b4a562 100644 --- a/src/main/scala/scalam/plotting/Plot.scala +++ b/src/main/scala/scalam/plotting/Plot.scala @@ -7,6 +7,7 @@ import scalam.plotting.styles._ import scala.collection.mutable.Map import scala.collection.mutable.ListBuffer import scalam.io.Saveable +import scala.language.implicitConversions class Plot( val dataSets: Seq[DataSet], @@ -92,7 +93,7 @@ object Plot { private[this] var counter = -1 private def next = { counter += 1; counter } - implicit val plotIsSaveable = (plot: Plot) => new Saveable { + implicit def plotIsSaveable(plot: Plot) = new Saveable { def save(path: scalax.file.Path) = { val plotFile = (path / PlotFileName) plotFile.createFile(createParents = true, failIfExists = false) -- cgit v1.2.3