diff --git a/project/build.properties b/build.properties similarity index 73% rename from project/build.properties rename to build.properties index 4fb9e34..eed14ec 100644 --- a/project/build.properties +++ b/build.properties @@ -1,5 +1,3 @@ -#Project properties -#Fri Apr 29 16:16:06 EDT 2011 project.organization=com.comonad project.name=ad sbt.version=0.7.4 diff --git a/build.sbt b/build.sbt new file mode 100644 index 0000000..47da3b6 --- /dev/null +++ b/build.sbt @@ -0,0 +1,7 @@ +name := "ad" + +version := "0.1" + +scalaVersion := "2.11.4" + +libraryDependencies += "org.scalaz" %% "scalaz-core" % "7.1.1" diff --git a/project/build/ad.scala b/project/build/ad.scala deleted file mode 100644 index 047f125..0000000 --- a/project/build/ad.scala +++ /dev/null @@ -1,7 +0,0 @@ -import sbt._ - -class ad(info: ProjectInfo) extends DefaultProject(info) { - val scalaToolsSnapshots = "Scala Tools Snapshots" at "http://scala-tools.org/repo-snapshots/" - val scalazCore = "org.scalaz" %% "scalaz-core" % "6.0-SNAPSHOT" -} - diff --git a/project/build/target/scala_2.7.7/analysis/dependencies b/project/build/target/scala_2.7.7/analysis/dependencies deleted file mode 100644 index 89f4049..0000000 --- a/project/build/target/scala_2.7.7/analysis/dependencies +++ /dev/null @@ -1,3 +0,0 @@ -#Source Dependencies -#Fri Apr 29 22:27:34 EDT 2011 -ad.scala= diff --git a/project/build/target/scala_2.7.7/analysis/external b/project/build/target/scala_2.7.7/analysis/external deleted file mode 100644 index 7ab6043..0000000 --- a/project/build/target/scala_2.7.7/analysis/external +++ /dev/null @@ -1,4 +0,0 @@ -#External Dependencies -#Fri Apr 29 22:27:34 EDT 2011 -/Users/ekmett/scala-ad/project/boot/scala-2.7.7/org.scala-tools.sbt/sbt/0.7.4/sbt_2.7.7-0.7.4.jar=ad.scala -/Users/ekmett/scala-ad/project/boot/scala-2.7.7/lib/scala-library.jar=ad.scala diff --git a/project/build/target/scala_2.7.7/analysis/generated_files b/project/build/target/scala_2.7.7/analysis/generated_files deleted file mode 100644 index 0e7f849..0000000 --- a/project/build/target/scala_2.7.7/analysis/generated_files +++ /dev/null @@ -1,3 +0,0 @@ -#Generated Classes -#Fri Apr 29 22:27:34 EDT 2011 -ad.scala=target/scala_2.7.7/classes/ad.class diff --git a/project/build/target/scala_2.7.7/analysis/hashes b/project/build/target/scala_2.7.7/analysis/hashes deleted file mode 100644 index d1224e4..0000000 --- a/project/build/target/scala_2.7.7/analysis/hashes +++ /dev/null @@ -1,3 +0,0 @@ -#Source Hashes -#Fri Apr 29 22:27:34 EDT 2011 -ad.scala=d9d72491c11d5e343ecbd1a30aaf4c2c3a47465e diff --git a/project/build/target/scala_2.7.7/analysis/projects b/project/build/target/scala_2.7.7/analysis/projects deleted file mode 100644 index 4b7f2c6..0000000 --- a/project/build/target/scala_2.7.7/analysis/projects +++ /dev/null @@ -1,3 +0,0 @@ -#Project Definitions -#Fri Apr 29 22:27:34 EDT 2011 -ad.scala=ad diff --git a/project/build/target/scala_2.7.7/classes/ad.class b/project/build/target/scala_2.7.7/classes/ad.class deleted file mode 100644 index 39202fc..0000000 Binary files a/project/build/target/scala_2.7.7/classes/ad.class and /dev/null differ diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..3c73cb4 --- /dev/null +++ b/readme.md @@ -0,0 +1,18 @@ +**Usage** + +With sbt: + +```scala +$ sbt console +... +scala> import scalaz._ +scala> import scalaz.Scalaz._ +scala> import ad._ + +scala> def test = diffa(new FF[Id,Id,Double] { + | def apply[S[_]](x: AD[S, Double])(implicit mode: Mode[S, Double]): AD[S, Double] = sin(x) + | }) + +scala> test(0) +scala> res11: (Double, Double) = (0.0,1.0) +``` diff --git a/src/main/scala/ad.scala b/src/main/scala/ad.scala index 8174b95..fe4bcb8 100644 --- a/src/main/scala/ad.scala +++ b/src/main/scala/ad.scala @@ -19,8 +19,8 @@ package object ad { def grada[F[_]:Traverse, A:Numeric](f: FU[F, A]): F[A] => (A, F[A]) = error("TODO") def grad[F[_]:Traverse, A:Numeric](f: FU[F, A]): F[A] => F[A] = error("TODO") - def grads[F[_]:Traverse, A:Numeric](f: FU[F, A]): F[A] => Cofree_[F,A] = error("TODO") - def jacobians[F[_]:Traverse, G[_]:Functor, A:Numeric](f: FF[F, G, A]): F[A] => G[Cofree_[F,A]] = error("TODO") + def grads[F[_]:Traverse, A:Numeric](f: FU[F, A]): F[A] => Cofree[F,A] = error("TODO") + def jacobians[F[_]:Traverse, G[_]:Functor, A:Numeric](f: FF[F, G, A]): F[A] => G[Cofree[F,A]] = error("TODO") implicit def lift[S[_], A](a: A)(implicit mode: Mode[S, A], A: Numeric[A]): AD[S, A] = AD[S,A](mode.lift(a))