Skip to content

Instantly share code, notes, and snippets.

@dlwh
dlwh / gist:9042715
Last active August 29, 2015 13:56
Semiring Dense operations
implicit def opMulMatrix_DM_DV_Semiring[T:Semiring:ClassTag:DefaultArrayValue]:OpMulMatrix.Impl2[DenseMatrix[T], DenseVector[T], DenseVector[T]] = new OpMulMatrix.Impl2[DenseMatrix[T], DenseVector[T], DenseVector[T]] {
implicit val ring = implicitly[Semiring[T]]
override def apply(a: DenseMatrix[T], b: DenseVector[T]) = {
require(a.cols == b.length)
val res = DenseVector.zeros[T](a.rows)
var c = 0
while(c < a.cols) {
var r = 0
while (r < a.rows) {
val v = a(r, c)
@dlwh
dlwh / gist:9563285
Created March 15, 2014 08:09
messing with implicit lookup
package foo {
class Bar
object Bar {
implicit val b = new Bar
}
}
import foo.Bar
@dlwh
dlwh / NMF.scala
Last active August 29, 2015 13:57
client code
object NMF {
def supervised(W: CuMatrix[Float], X: CuMatrix[Float], iters: Int = 200, eps: Float = 1E-6f) = {
require(W.rows == X.rows)
import W.blas
val n = X.rows
val m = X.cols
val r = W.cols
var H = CuMatrix.ones[Float](r, m)
import breeze.linalg._
import gust.linalg.cuda._
import jcuda.jcublas._
implicit val handle = new cublasHandle()
JCublas2.cublasCreate(handle)
// an extract from a REPL session
val A = CuMatrix.fromDense(DenseMatrix((1.0f, 1.0f, 2.0f, 1.0f), (1.0f, 2.0f, 1.0f, -2.0f), (3.0f, -1.0f, 3.0f, -2.0f), (-2.0f, 3.0f, -1.0f, 1.0f)))
val N = 4
@dlwh
dlwh / gist:8c9a1ef767a905bb8e98
Created July 14, 2014 01:40
epic dependency graph
[info] org.scalanlp:epic_2.10:0.2-SNAPSHOT [S]
[info] +-de.jflex:jflex:1.4.3
[info] +-org.mapdb:mapdb:0.9.2
[info] +-org.scala-lang:scala-library:2.10.2 (evicted by: 2.10.4)
[info] +-org.scala-lang:scala-library:2.10.3 (evicted by: 2.10.4)
[info] +-org.scalanlp:breeze-config_2.10:0.8 (evicted by: 0.8.1-SNAPSHOT)
[info] +-org.scalanlp:breeze-config_2.10:0.8.1-SNAPSHOT [S]
[info] | +-com.thoughtworks.paranamer:paranamer:2.2
[info] | +-org.scala-lang:scala-reflect:2.10.4 [S]
[info] |
@dlwh
dlwh / UpdateSerializedObjects.scala
Created August 31, 2014 06:39
For updating model files
import java.io._
import java.util.zip.GZIPInputStream
import breeze.util.SerializableLogging
/**
* Class that reads in objects serialized with [[breeze.util.writeObject]], ignoring their serialversionuids,
* and then writes them to the same file.
*
* @author dlwh
@dlwh
dlwh / scEnrichColl.scala
Created September 3, 2014 01:38
toMultiMap
implicit class scEnrichColl[Coll <: Traversable[(_,_)]](val __this: Coll) extends AnyVal {
def toMultiMap[Result, A, B](implicit view: Coll <:< Traversable[(A, B)], cbf: CanBuildFrom[Coll, B, Result]): Map[A, Result] = {
var result = collection.mutable.Map[A, mutable.Builder[B, Result]]()
result = result.withDefault { a => val r = cbf(__this); result.update(a, r); r}
for((a,b) <- view(__this)) {
result(a) += b
}
result.mapValues(_.result()).toMap
@dlwh
dlwh / build.sbt
Created January 21, 2015 23:14
javacl sbt error
organization := "org.scalanlp"
name := "qqq"
version := "0.1-SNAPSHOT"
scalaVersion := "2.11.4"
libraryDependencies ++= Seq(
"com.nativelibs4java" % "javacl" % "1.0-SNAPSHOT"
package smr.plugin;
import scala.tools.nsc
import nsc.Global
import nsc.Phase
import nsc.plugins.Plugin
import nsc.plugins.PluginComponent
import nsc.transform._
import nsc.symtab.Flags._
class SerOverride(val global: Global) extends Plugin {
private[hadoop] def runMapReduce[K1,V1,K2,V2,K3,V3](paths : Array[Path],
m: Mapper[K1,V1,K2,V2],
r: Reduce[K2,V2,K3,V3])
(implicit mk2:Manifest[K2], mv2:Manifest[V2],
mk3:Manifest[K3], mv3:Manifest[V3]) = {
implicit val jobConf = new JobConf(conf, m.getFunClass);
val outputPath = genDir;
jobConf.setJobName("SMR-"+outputPath.getName);