You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The method testCalc1CLArray shown below fails at line 13:
package mytests
import scalacl._
import org.junit.{Assert, Test, Ignore}
class Test216 {
private implicit val context = Context.best
// Using IndexedSeq
def calc1(vx : IndexedSeq[Float], vy : IndexedSeq[Float], mx : Float, my : Float) : Float = {
(vx zip vy).par.map( { case (x,y) => { (x - mx) * (y - my) } } ).sum // line 13
}
@Test
def testCalc1Array() : Unit = {
val a = Array[Float]( 1.0F, 2.0F, 3.0F)
val b = Array[Float](10.0F, 20.0F, 30.0F)
val f = calc1(a, b, 2.0F, 20.0F)
println(f)
}
@Test
def testCalc1CLArray() : Unit = {
val a = Array[Float]( 1.0F, 2.0F, 3.0F)
val b = Array[Float](10.0F, 20.0F, 30.0F)
val f = calc1(a.cl, b.cl, 2.0F, 20.0F) // line 30
println(f)
}
// Using CLArray
def calc2(vx : CLArray[Float], vy : CLArray[Float], mx : Float, my : Float) : Float = {
(vx zip vy).par.map( { case (x,y) => { (x - mx) * (y - my) } } ).sum
}
@Test
def testCalc2CLArray() : Unit = {
val a = Array[Float]( 1.0F, 2.0F, 3.0F)
val b = Array[Float](10.0F, 20.0F, 30.0F)
val f = calc2(a.cl, b.cl, 2.0F, 20.0F)
println(f)
}
}
java.lang.ClassCastException: scala.Tuple2 cannot be cast to java.lang.Float
at scala.runtime.BoxesRunTime.unboxToFloat(Unknown Source)
at scala.runtime.ScalaRunTime$.array_update(ScalaRunTime.scala:72)
at scala.Array$.slowcopy(Array.scala:63)
at scala.Array$.copy(Array.scala:89)
at scala.collection.mutable.ResizableArray$class.copyToArray(ResizableArray.scala:76)
at scala.collection.mutable.ArrayBuffer.copyToArray(ArrayBuffer.scala:44)
at scala.collection.TraversableOnce$class.copyToArray(TraversableOnce.scala:226)
at scala.collection.mutable.ArrayBuffer.copyToArray(ArrayBuffer.scala:44)
at scala.collection.TraversableOnce$class.toArray(TraversableOnce.scala:234)
at scala.collection.mutable.ArrayBuffer.toArray(ArrayBuffer.scala:44)
at scalacl.CLArray$.fromSeq(CLArray.scala:31)
at scalacl.CLArray$$anonfun$newBuilder$1.apply(CLArray.scala:46)
at scalacl.CLArray$$anonfun$newBuilder$1.apply(CLArray.scala:46)
at scala.collection.mutable.Builder$$anon$1.result(Builder.scala:103)
at scala.collection.IndexedSeqOptimized$class.zip(IndexedSeqOptimized.scala:86)
at scalacl.CLArray.zip(CLArray.scala:86)
at mytests.Test216.calc1(Test216.scala:13)
at mytests.Test216.testCalc1CLArray(Test216.scala:30)
Some diagnotics:
I have other methods which:
do not employ ScalaCL objects explicitly but are called with ScalaCL objects.
employ method zip() but ScalaCL objects are explicitly employed
So, looks like it is a problem in the way zip() is implemented when non-ScalaCL objects are involved.
From @frgomes on December 21, 2011 3:22
The method testCalc1CLArray shown below fails at line 13:
Some diagnotics:
I have other methods which:
So, looks like it is a problem in the way zip() is implemented when non-ScalaCL objects are involved.
Copied from original issue: nativelibs4java/nativelibs4java#216
The text was updated successfully, but these errors were encountered: