QEtaComputationReductionCategory(F, AB)ΒΆ

qetasamba.spad line 326 [edit on github]

QEtaComputationReductionCategory lists the functions that are necessary to provide as reduction functions in a QEtaComputation.

noTrace: F -> Void

A function that does nothing.

noTraceEnter: (F, AB) -> Void

A functions that does nothing.

reduce: (F, AB) -> F

reduce(u, ab) returns tracedReduce(noTraceEnter,noTrace,noTrace).

topReducible?: (F, F, F) -> Boolean

topReducible?(u, b, t) returns true iff there exists f in F and e>=0 such that v=u-f*b*t^e is (in a certain noetherian sense) smaller than u.

tracedReduce: ((F, AB) -> Void, F -> Void, F -> Void) -> (F, AB) -> F

tracedReduce(traceEnter, traceLoop, traceReturn)(u, ab) returns an element v such that v is not reducible modulo ab. For tracing purposes several functions can be provided that are called at enter and exit time (functions traceEnter(u, ab) and traceReturn(w) where w is the value that will be returned). Inside the internal while loop the function traceLoop(v) is called with v being the intermediately reduced u. These hooks are provided to print a trace of the reduction.

traceEnter: NonNegativeInteger -> (F, AB) -> Void

traceEnter(n)(x, a) returns void() and depending on the value of n returns more and more information. Where a higer version of n means more information. trace(0) is equivalent with noTraceEnter.

traceLoop: NonNegativeInteger -> F -> Void

traceLoop(n)(x) just returns void() without any side effect and depending on the value of n returns more and more information. Where a higer version of n means more information. trace(0) is equivalent with noTraceElement.

traceReturn: NonNegativeInteger -> F -> Void

traceReturn(n)(x) just returns void() without any side effect and depending on the value of n returns more and more information. Where a higher version of n means more information. trace(0) is equivalent with noTraceElement.