Skip to content

Commit ddcfe63

Browse files
committed
package-info.java: relax reproducibility
1 parent 7ea591f commit ddcfe63

File tree

1 file changed

+9
-6
lines changed

1 file changed

+9
-6
lines changed

scijava-ops-api/src/main/java/org/scijava/ops/api/package-info.java

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -64,10 +64,12 @@
6464
* An Op is an algorithm adhering to the following traits:
6565
* </p>
6666
* <ol>
67-
* <li>Ops are stateless and deterministic - with no internal state, calling an
68-
* Op two times on the same inputs will produce the same output.</li>
6967
* <li>Ops are named - this name conveys an Op's purpose, and allows us to find
7068
* all Ops implementing a particular operation</li>
69+
* <li>Ops have a number of input and output parameters, each defined by a
70+
* type</li>
71+
* <li>Ops adhere to a {@link java.lang.FunctionalInterface}, defining how it
72+
* operates</li>
7173
* </ol>
7274
* <p>
7375
* Using the name and the combination of input and output parameters, we can
@@ -151,10 +153,11 @@
151153
* and SciJava Ops will take care to call the correct Op based on the concrete
152154
* inputs provided.</li>
153155
* <li>Result-equivalence, and therefore reproducibility, in Ops, is guaranteed
154-
* within an OpEnvironment and a set of input objects, but not just for Op
155-
* calls. This allows us to ensure reproducible pipelines, but also allows us to
156-
* introduce new Ops into the pipeline or to run pipelines on different inputs
157-
* without changing the pipeline itself.</li>
156+
* within an OpEnvironment and a set of input objects, when <b>deterministic</b>
157+
* algorithms are used. Cognizance of algorithm determinism allows users to
158+
* create reproducible pipelines, however determinism is <b>not</b> a
159+
* requirement for Ops, as it would preclude many valuable algorithms from
160+
* becoming an Op. </li>
158161
* </ol>
159162
*/
160163

0 commit comments

Comments
 (0)