Products > Dodgy Technology

Optical Bench REDUX: Digital Switching can have Analog Functions!

<< < (66/71) > >>

RJSV:
What I've indicated, is that, while a partial multiply, like '4 X 7' DOES extend over one column, with the '2' in the result of '28' the point is that the adding up of all the values, from partial multiplies, does not exceed '9' and thus there is no carry propagation caused there.
Worst case, you get a '9' from adding the partials (please also see previous diagram, bottom), so, while you do have to add up the two partials, you can be confident that no carry handler is needed.

RJSV:
For management purposes, a project tracking graph displays a couple of goals:

RJSV:
In that graph, (last post), a management tool or project tracking for schedules, the first goal looks good, while the other two have promise...albeit a distant one.
Doing a single decrement is nicely done, although more simply within the bounds of ' normal rounding'.
Perhaps be said as 'analog that closely tries to follow digital form, or step-wise form.

So, graph shows lower bounds, where there isn't really any functional benefit, or promise of that.
Upper dotted-line bound is where function gets pretty good, maybe ALMOST as good, as something like binary TTL electronics.

RJSV:
Lots of speculation on how to get a decent level compare operation.
Enclosed graph shows typical number squared, with unity point matching...that being '1 X 1' = 1.
If you've multiplies out, at various points, it nicely separates, where any input above 1 gets increased, (when squared) while inputs lower than '1' get diminished (when any squaring action gets repeated).
Firstly, you could (somehow) use this to separate out, finely, anything even the slightest bit above a '1.0' will get 'blown upwards' to grow large, by way of repeated squaring.
Similarly, any number, just a bit under a '1.0', like '0.93' will also, quickly, move; this time downwards from the '1.0' inflection point.  In both those cases it takes about four iterations, to obtain a '2X' or a '1/2 X' result, from original value being tested.

Now, having those 'exagerated' values in hand, I would next need to have a 'digitizing' action.  That would turn an extremely large number, like '42', into just a one... a digital '1' to be used as an 'enable'.  So there's that.
On the low side, would want anything less than '1.0' to be (thresholded) to a 'zero', actually difficult to impossible, with these passive optical components.
But, to enable/disable it might be possible to use the parameter (being tested) in an exponent.  That way, instead of AVOIDING some multiply or some addition, conditionally, the optical set-up simply performs the function, thus unconditionally.  Then, adding some very small factor can be almost the same as conditionally doing nothing. (Edit)

On the high side, of that, any variable that goes ABOVE a '1.0' would, or could potentially, act as an enable by way of setting the exponent (to a '1').

The whole methodology is, as been presented, a 'blind' functional, having no practical 'compare' or 'zero test', (or even explicit PC or program counter).

Passive/Aggressive; I should call it !

RJSV:
Graph.