X-Authentication-Warning: delorie.com: mail set sender to geda-user-bounces using -f X-Recipient: geda-user AT delorie DOT com X-TCPREMOTEIP: 63.119.35.194 X-Authenticated-UID: jpd AT noqsi DOT com Content-Type: multipart/signed; boundary="Apple-Mail=_91F8A648-923D-4689-910E-6DA8C5AE031B"; protocol="application/pgp-signature"; micalg=pgp-sha512 Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\)) Subject: Re: [geda-user] Re: some more geometry module tweaks (sorry, wall of text) X-Pgp-Agent: GPGMail 2.5.2 From: John Doty In-Reply-To: Date: Wed, 6 Jan 2016 20:34:57 -0500 Message-Id: <85931412-093C-4D6A-B283-0FB37DFEC556@noqsi.com> References: <8985B557-CC87-48A0-A745-298A501945F0 AT noqsi DOT com> To: geda-user AT delorie DOT com X-Mailer: Apple Mail (2.1878.6) Reply-To: geda-user AT delorie DOT com Errors-To: nobody AT delorie DOT com X-Mailing-List: geda-user AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk --Apple-Mail=_91F8A648-923D-4689-910E-6DA8C5AE031B Content-Type: multipart/alternative; boundary="Apple-Mail=_F98C1D00-843A-4C92-95D5-CC0160BCA3AC" --Apple-Mail=_F98C1D00-843A-4C92-95D5-CC0160BCA3AC Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=windows-1252 On Jan 6, 2016, at 8:04 PM, Britton Kerin (britton DOT kerin AT gmail DOT com) [via = geda-user AT delorie DOT com] wrote: >=20 >=20 > On Wed, Jan 6, 2016 at 3:47 PM, John Doty wrote: >=20 > On Jan 6, 2016, at 7:29 PM, Britton Kerin (britton DOT kerin AT gmail DOT com) = [via geda-user AT delorie DOT com] wrote: >=20 >> Yeah DJ hinted at this as well. My knee-jerk reaction is to use an = even winder type for the internal floating point representation. Short = of arbitrary precision there's no way to support arbitrary intermediate = results, but if you can count bye ones all the way to a squared value = that would seem to cover all the simple geometrical calculations we're = interested in. Things like hypot() help, but I admit I don't fully = understand exactly how much. They certainly keep the numbers smaller = and thereby prevent overflow, but I don't fully understand the = consequences for intermediate results outside the range where the float = can represent all integers. >=20 > This particular calculation is numerically stable, even if written as = sqrt(x*x+y*y). It can=92t generally be perfect, but it=92s not the kind = of thing that sends numerical analysts into cold sweats. >=20 > Going through and auditing geometry.h for big things they're mostly in = hypot() but there are a few others. >=20 > Do you know about the sensitivity of these: >=20 > http://mathworld.wolfram.com/Circle-LineIntersection.html > http://mathworld.wolfram.com/Circle-CircleIntersection.html >=20 It depends on what you want to know. If you are asking if there is an = intersection, things are not terribly tricky. If you want to know the = points of intersection, it=92s sensitive to how you formulate the = calculation. A generalization of = http://www.solipsys.co.uk/cgi-bin/sews.py?NumericallyStableSolutionForTheQ= uadraticEquation > Britton >=20 John Doty Noqsi Aerospace, Ltd. http://www.noqsi.com/ jpd AT noqsi DOT com --Apple-Mail=_F98C1D00-843A-4C92-95D5-CC0160BCA3AC Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=windows-1252
On Jan 6, 2016, at 8:04 PM, Britton = Kerin (britton DOT kerin AT gmail DOT com) = [via geda-user AT delorie DOT com] = <geda-user AT delorie DOT com>= wrote:



On Wed, Jan 6, 2016 at 3:47 PM, John Doty <jpd AT noqsi DOT com> wrote:

On Jan 6, 2016, at 7:29 PM, = Britton Kerin (britton DOT kerin AT gmail DOT com) [via geda-user AT delorie DOT com] <geda-user AT delorie DOT com> = wrote:

Yeah DJ hinted at this as well.  My knee-jerk reaction = is to use an even winder type for the internal floating point = representation.  Short of arbitrary precision there's no way to = support arbitrary intermediate results, but if you can count bye ones = all the way to a squared value that would seem to cover all the simple = geometrical calculations we're interested in.  Things like hypot() = help, but I admit I don't fully understand exactly how much.  They = certainly keep the numbers smaller and thereby prevent overflow, but I = don't fully understand the consequences for intermediate results outside = the range where the float can represent all = integers.

This particular calculation = is numerically stable, even if written as sqrt(x*x+y*y). It can=92t = generally be perfect, but it=92s not the kind of thing that sends = numerical analysts into cold = sweats.

Going = through and auditing geometry.h for big things they're mostly in hypot() = but there are a few others. 

Do = you know about the sensitivity of these:


It depends on = what you want to know. If you are asking if there is an intersection, = things are not terribly tricky. If you want to know the points of = intersection, it=92s sensitive to how you formulate the calculation. A = generalization of http://www.solipsys.co.uk/cgi-bin/sews.py?Numeri= callyStableSolutionForTheQuadraticEquation

Britton


John = Doty        =       Noqsi = Aerospace, Ltd.

http://www.noqsi.com/

jpd AT noqsi DOT com



= --Apple-Mail=_F98C1D00-843A-4C92-95D5-CC0160BCA3AC-- --Apple-Mail=_91F8A648-923D-4689-910E-6DA8C5AE031B Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc Content-Description: Message signed with OpenPGP using GPGMail -----BEGIN PGP SIGNATURE----- Comment: GPGTools - https://gpgtools.org iQIcBAEBCgAGBQJWjcDBAAoJEF1Aj/0UKykRQiYP/ROGoAKfIPdsZiudcC4cFadf p+imAzNkGVzCYbLoOPMJsN/m2RmoNogLnSjQL6OeF6BMBGYpTyveSuPm3cFsidmF vSrRFTGYp4PQlGwBs5xIHS+LXKOXaIPEj8LCXdGWUIYUP9+CXtSxOFKYCHDelvFB paGRghj7bKdvWoOEYlURFznORX+NQk6NKiLytRbtWM2YFGmU7swU2n6OQ8ZAd4EA 2kWtNwxsn77/LlUJiciyEhLIEgbkdyb79n3xZOS2A6A6ZCNoIPyHUriyhR8lq/fH FZpsvxlCTneRsXbhjgWKy/IE/2A3uj3JmPgXqx20sG8cRSow0IMNtEDPpW/kLEob 7EmUHiadG/Xdk/dcxkBaZKyvWBAefh0rNh6NGD8t5cBalRZih1v9jEc/vkwGByHl cXfphIhto1pykSnjH6xgzpnPrcwXOkYqD2yuoGzUiQOmEIvBs46BNBzGmHIioESj SpqVOQ+d1d1u6o6frLn5pUPfJO0YQDQbBCrXlxLl7zrK4eleucJJWH4/x1oOfOZ8 F5l3jj9hB2rusziQ1a+MAOy/8ezwi9pUeMjv8AHN12LYzC3t3uVnA/L3tGvbv28j /5LEO3zYz9hJ5bnBAJGA/sni9uHb+WZuVwsH14msVRcs20XrBE7j2qWUWMIg/g8Z ProCwrQvP8HDkiiW/k5u =OExd -----END PGP SIGNATURE----- --Apple-Mail=_91F8A648-923D-4689-910E-6DA8C5AE031B--