Products > Dodgy Technology

Optical Bench REDUX: Digital Switching can have Analog Functions!

<< < (67/71) > >>

RJSV:
So the idea is, that even if you can't do a typical test, (for loop ending or finished), like;
DO WHILE Index>0

...you can avoid the testing, directly, but incorporate the variable (loop index in this case) incorporate into some number being manipulated, unconditionally.

But leaving THAT bugaboo aside, for minute, (and turning back to the diagram of squared number), you can notice that the (starting) values below that '1.0' inflection point will decrease, exponentially, you would get:
'1/2 squared to 1/4, then 1/4 squared to 1/16...etc',
Noticing that, in my case it would be '0.9' squared to '0.81', then squared to '0.65', then to '0.42'...You can use a rule of thumb, that about 4 operations will get your value reduced by about half.
Now since (I haven't) developer here doesn't have answer for even the basic action of a fully general number by number multiply, there can be a substitute, for general number squaring(!)
Just, simply multiply by '0.9' repeatedly...THAT simple substitute function will ALSO cause an approximate value reduction by one-half.  That's the sort of crude, out of the box thinking required.
Free and loose with the math.

However, looking at the high end, of the X squared results, those values would not conform to what I want, as the graph, above the '1.0' inflection would not increase, each step, from any substitution of 'X 0.9' over a straight up square, of the value.

At any rate the behaviour I seek can be shown, when starting at '1.05', a number barely above '1.0', when squared gives '1.1', and subsequent '1.21', '1.44', and value '2.07', giving you that doubling effect, every four operations.

Several missing pieces, but my COMPETITION is hot on my tail...
pretty sure.
--Rick B.

RJSV:
Oh, and don't forget, this aspect of an optical data BUS is ENCODED, with special offset and ranges.  That being a '4.0' as coded representative, for 'zero' logical.
Your '1.0' logical value being discussed in past few posts, actually will be, physically, at '4.5' being as each integer logical count is size '0.5' realistically.
Since the physical counts are 1/2 sized, then your rounding value, of a one vs. a zero, is at
'4.25', meaning that anything below '4.25' is considered a logical 'zero'.

Now, taking this and running with it, I've (intuitively) hit upon a suggestive formula, by way of multiply, by '0.9', a typically seen multiplier, in this thread, but then a 'replacement' or restoration, back to 100% , and that's done by adding back in: a '0.45'.
This is going to seem cryptic, if lack of explanation, but that '0.45' is from the '4.5', that is the coded version, of a 'one' logical value.
So, if at the inflection point, you do an 'X 0.9' and then put it back by adding '0.45', thus you could say, any input of a 'one logical' will just end up not moving, staying at a 'one'.
At another number, though, such as (coded) '5', which is representing a logical 'two', then that '0.45' being added back in (after diminishing by X .9), that '0.45' is going to be a bit too low, giving a result of '0.495'.
THAT isn't good, as I seek DIVERGENCE, from inflection, not closer each time.
Similar problem, on lower end, where a coded 'zero' logical, at physical '4.0' or nearby, will be increased, slightly, but again, does not diverge.

That looks like: '4.0 X 0.9 = 3.6'
Then '3.6 + .45 = '4.05' so you can see the slight little 'creep', towards inflection at '1.0' (coded at 4.5), rather than the needed 'crawl' downward.  That way, you could get the 2X change, after about four reductions, the needed change that (would have) gotten that value below significance, (and thus you would have had conditional-like action).

"Conditional pseudo functions, CODED analog doing (octal) or near-octal logical...This shiit is making 'blind pseudo-decrements look like a cake-walk.
Competition is heating up, I feel.

RJSV:
Might be a little sloppy, but happened upon a substitute for general multiplying.  That is, a multiply where it's not one 'permanent' channel or attenuator against a beam amplitude
Substituting a 2X of factorial gives an excitingly close valued set of numbers,...for instance 7 squared is going to show as '28+28= 56' or 7 too high over 49.

Using input '9', gives '45+45' or 90,...a value a little too high, at 9 above the correct value, '81'.

For purposes here, it's the divergent properties, but that doesn't stop the use for other, possibly inexact processes.

RJSV:
Now doing a spot-check, on some multiplies, that aren't squares;
Trying '5 X 3', you get 5! = 15, with 3!= 6.  So that appears as '21',...at 6 above correct value.   Still not real bad, and possibly correctable.

Trying '2 X 7', you get '31',...obviously way too far off to be practible.  But most multiplications get closer.
Trying '7 X 5' gives '43' which isn't far from the correct value of '35'.  Or at least within an order of magnitude.

RJSV:
Graph shows three curves, doing squares of three starting points: