From 9bc35dcd39bf2949572b822864c1cb6c4b4dc5a6 Mon Sep 17 00:00:00 2001 From: Luke Kenneth Casson Leighton Date: Tue, 10 Sep 2019 12:24:39 +0100 Subject: [PATCH] add comments from discussion --- ztrans_proposal.mdwn | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/ztrans_proposal.mdwn b/ztrans_proposal.mdwn index d00457705..8ef6063dc 100644 --- a/ztrans_proposal.mdwn +++ b/ztrans_proposal.mdwn @@ -476,12 +476,25 @@ sequencer) more complicated that necessary. -------------------------------------------------------- -I might suggest that if there were a way for a calculation to be performed -and the result of that calculation +We therefore I think have a case for bringing back ATAN and including ATAN2. + +The reason is that whilst a microcode-like GPU-centric platform would do ATAN2 in terms of ATAN, a UNIX-centric platform would do it the other way round. + +(that is the hypothesis, to be evaluated for correctness. feedback requested). + +Thie because we cannot compromise or prioritise one platfrom's speed/accuracy over another. That is not reasonable or desirable, to penalise one implementor over another. -chained to a subsequent calculation such that the precision of the -result-becomes-operand is wider than +Thus, all implementors, to keep interoperability, must both have both opcodes and may choose, at the architectural and routing level, which one to implement in terms of the other. +Allowing implementors to choose to add either opcode and let traps sort it out leaves an uncertainty in the software developer's mind: they cannot trust the hardware, available from many vendors, to be performant right across the board. + +Standards are a pig. + +--- + +I might suggest that if there were a way for a calculation to be performed +and the result of that calculation chained to a subsequent calculation +such that the precision of the result-becomes-operand is wider than what will fit in a register, then you can dramatically reduce the count of instructions in this category while retaining -- 2.30.2