Deutsch   English   Français   Italiano  
<cda10f433a87be85af9d9487f58f8f43@www.novabbs.com>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!news.mixmin.net!news.neodome.net!rocksolid2!i2pn2.org!.POSTED!not-for-mail
From: melahi_ahmed@yahoo.fr (ahmed)
Newsgroups: comp.lang.forth
Subject: Re: Complex square root of -1 : zsqrt(-1)
Date: Fri, 6 Sep 2024 07:11:18 +0000
Organization: novaBBS
Message-ID: <cda10f433a87be85af9d9487f58f8f43@www.novabbs.com>
References: <cc2a1ec5eae8d18d290b398af3c013cb@www.novabbs.com> <2024Aug25.191346@mips.complang.tuwien.ac.at> <c02b8db68bf735b5c30c7d5979b942a3@www.novabbs.com> <2024Aug28.103612@mips.complang.tuwien.ac.at> <20540ab199e43e94b3d156a1dd58e3f2@www.novabbs.com> <d9184f7688ceced53b41535c172032b3@www.novabbs.com> <f55b068b628dc4c5ae64a7d71d87c964@www.novabbs.com> <a886e3f176a33b9a041d8b36fea3916e@www.novabbs.com> <df1eb1782e95ac101f5ca81ff81f1e32@www.novabbs.com> <28fcb29094fab35007403391b3ea764e@www.novabbs.com> <db254672d6f9222e538709f19433c6d0@www.novabbs.com> <9e33977efbec1e99ef0a539a0ff82b1d@www.novabbs.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Info: i2pn2.org;
	logging-data="1030560"; mail-complaints-to="usenet@i2pn2.org";
	posting-account="fh2jRJ/PGtIlZMySaIjc6gsLWP80WZpB2lZYFC5wgKI";
User-Agent: Rocksolid Light
X-Spam-Checker-Version: SpamAssassin 4.0.0
X-Rslight-Posting-User: a55529988cdb6fa7b5e36631aef8884238b8448a
X-Rslight-Site: $2y$10$1v33xIsXW6az5AWAh8UR5uOd/XPx8tbbuH8DrzNPmoTVFLTq7ITze
Bytes: 1943
Lines: 21

Hi,

Here is another definition for |z|.
It is based on the formula : z = |z| * exp(i*arg(z)).
One can get: |z| = z * exp(-i*arg(z)).

Here is the code:

: zarg ( z: a+bi -- ) ( f: -- theta)
    fswap fatan2
;

: |z| ( z: a+bi -- ) ( f: -- |z|)
    zdup zarg 0e 0e -1e z* ( z: -i*arg[z])
    zexp z*  ( z: z*exp(-i*arg[z])
    fdrop    ( z: --) ( f: |z|)
;

But it is slower than the defintion using pythag( about 3-6 times
(tested gforth)).

Ahmed