Hi Andrea,

the generalized notation for transition using when was not implemented for Exploration and Aggreagtion transition. The commit b6d6fe420c22f33f0b38644195f7efaaeac8d3eb fixed it. Could you test it?

Cheers,
Romain

Le 18/05/2015 14:42, Andreas Schuh a écrit :
Hi,

the following are excerpts of my recent attempt to workaround previous WF 
issues (which I believe are due to bugs in OpenMOLE…). How can I resolve the 
compilation error:

[error] 
/Users/as12312/Documents/Projects/REPEAT/src/main/scala/com/andreasschuh/repeat/workflow/RunRegistration.scala:496:
 overloaded method value >- with alternatives:
[error]   (toHead: org.openmole.core.workflow.puzzle.Puzzle,toTail: 
org.openmole.core.workflow.puzzle.Puzzle*)org.openmole.core.workflow.puzzle.Puzzle 
<and>
[error]   (to: org.openmole.core.workflow.puzzle.Puzzle,condition: 
org.openmole.core.workflow.transition.Condition,filter: 
org.openmole.core.workflow.transition.Filter[String],trigger: 
org.openmole.core.workflow.transition.Condition)org.openmole.core.workflow.puzzle.Puzzle
[error]  cannot be applied to 
(org.openmole.core.workflow.transition.TransitionParameter, 
org.openmole.core.workflow.transition.TransitionParameter)
[error]           evaluateOverlapEnd >- (
[error]                              ^
[error] one error found
[error] (compile:compile) Compilation failed


List of OpenMOLE imports:

import org.openmole.core.dsl._
import org.openmole.core.workflow.data.Prototype
import org.openmole.plugin.domain.file._
import org.openmole.plugin.hook.file._
import org.openmole.plugin.sampling.combine._
import org.openmole.plugin.sampling.csv._
import org.openmole.plugin.task.scala._
import org.openmole.plugin.tool.pattern.Skip


Here the offending aggregation:

val writeMean =
   evaluateOverlapEnd >- (
     writeMeanOverlap(dscRegAvgCsvPath, dscGrpAvg, dscRegAvg, header = groups) when 
"!dscGrpAvgValid.contains(false)",
     writeMeanOverlap(jsiRegAvgCsvPath, jsiGrpAvg, jsiRegAvg, header = groups) when 
"!jsiGrpAvgValid.contains(false)"
   )


Definition of evaluateOverlapEnd:

val evaluateOverlapEnd =
   Capsule(
     EmptyTask() set (
       name    := s"${reg.id}-EvaluateOverlapEnd",
       inputs  += (dscValues, dscGrpAvg, dscGrpStd, jsiValues, jsiGrpAvg, 
jsiGrpStd),
       inputs  += (dscValuesValid, dscGrpAvgValid, dscGrpStdValid, 
jsiValuesValid, jsiGrpAvgValid, jsiGrpStdValid),
       outputs += (dscValues, dscGrpAvg, dscGrpStd, jsiValues, jsiGrpAvg, 
jsiGrpStd),
       outputs += (dscValuesValid, dscGrpAvgValid, dscGrpStdValid, 
jsiValuesValid, jsiGrpAvgValid, jsiGrpStdValid)
     ),
     strainer = true
   )


Definition of writeMeanOverlap:

def writeMeanOverlap(path: String, values: Prototype[Array[Double]], mean: 
Prototype[Array[Double]], header: String) =
   ScalaTask(
     s"""
       | val regId = input.regId.head
       | val parId = input.parId.head
       | val ${mean.name} = ${values.name}.transpose.map(_.sum / 
${values.name}.head.size)
     """.stripMargin
   ) set (
     name    := s"${reg.id}-Write${mean.name.capitalize}",
     inputs  += (regId.toArray, parId.toArray, values.toArray),
     outputs += (regId, parId, mean)
   ) hook (
     AppendToCSVFileHook(path, regId, parId, mean) set (
       csvHeader := "Registration,Parameters," + header,
       singleRow := true
     )
   )


Cheers,
Andreas
_______________________________________________
OpenMOLE-users mailing list
[email protected]
http://fedex.iscpif.fr/mailman/listinfo/openmole-users


Attachment: smime.p7s
Description: Signature cryptographique S/MIME

_______________________________________________
OpenMOLE-users mailing list
[email protected]
http://fedex.iscpif.fr/mailman/listinfo/openmole-users

Reply via email to