Subject: Deutschsprachige CAcert Support Liste
List archive
- From: <ulrich AT cacert.org>
- To: <cacert-de AT lists.cacert.org>
- Subject: RE: Performance - Re: AW: nur noch wenige aktive Assurer
- Date: Thu, 17 Sep 2009 16:46:01 +0200
- Authentication-results: lists.cacert.org; dkim=pass (1024-bit key) header.i= AT cacert.org; dkim-asp=none
- Importance: Normal
und wie wuerde die fertige Formel dann aussehen ?!?
waere dann gleich als Performance Verbessurung fuer's
"Find An Assurer" Script bzw. fuer die Event-Mailing-Scripts ,-)
regards, uli ;-)
-----Original Message-----
From: Thomas Bremer
[mailto:thomas.bremer AT cacert.org]
Sent: Thursday, September 17, 2009 4:39 PM
To:
cacert-de AT lists.cacert.org
Subject: Performance - Re: AW: nur noch wenige aktive Assurer
Hi Uli,
diese Mail ist ein bisschen off topic. Okay, habe den Betreff geändert.
> $maxdist = 50; // i.e. 50 km
> $locid = 715191; // Hamburg i.e. Location des Assuree
> $query = "select * from `locations` where `id`='$locid'";
> $loc = mysql_fetch_assoc(mysql_query($query));
> $query = "SELECT ROUND(6378.137 * ACOS(0.9999999*((SIN(PI() *
> $loc[lat] / 180) * SIN(PI() ...
den größten Teil der wilden Formel habe ich mal abgeschnitten. Da wird
die Großkreisentfernung berechnet. Ich halte das für Overkill, zumal
Assurees normalerweise eine andere Route nehmen. (Wer hat schon ein
Flugzeug mit eingebauter Windstille? ;-) ) Eine Näherung würde hier auch
reichen. Und weil im Formular auf der Seite $maxdist <= 1000 ist, geht
das auch ziemlich einfach. Die "spezifische Entfernung" zwischen
unterschiedlichen Breiten auf einem Meridian ist (40,000 / 360) km/deg.
Auf einem Breitenkreis, also zwischen zwei Punkten gleicher Breite, ist
sie (40,000 / 360 * cos(lat)) km / deg. Jetzt nehmen wir als Breite die
von $locid tun wir so, als wären wir in der Ebene und benutzen den guten
alten Pythagoras und kriegen eine Näherung für die Entfernung. Und wenn
wir die Sache noch etwas beschleunigen wollen, dann quadrieren wir die
Ungleichung. Damit ersparen wir uns die Wurzel.
Was bringt das an Effizienz? Nun ja, von den 5 * Count_Assurer
trigonometrischen Operationen bleibt noch eine übrig. Die
Multiplikationen zähle ich erstmal nicht, sie sind aber normalerweise
wesentlich schneller als sin / cos / acos, auch wenn sie in Hardware mit
CORDIC gerechnet werden. Brauchen wir das? Ich habe eben mal probeweise
Reykjavík (1561244) als Ort eingegeben und mit 10 km und 1000 km als
Limit gesucht. Hat mehrere Sekunden gedauert. Frankfurt (606058) dauert
auch so lange - jedenfalls bei 10 km. Andere können das wesentlich besser.
regards, Thomas
Attachment:
smime.p7s
Description: S/MIME cryptographic signature
- Re: AW: nur noch wenige aktive Assurer, (continued)
- Re: AW: nur noch wenige aktive Assurer, Benedikt Heintel, 09/17/2009
- Re: AW: nur noch wenige aktive Assurer, Andreas Bürki, 09/17/2009
- Re: AW: nur noch wenige aktive Assurer, Ina Kupp, 09/18/2009
- Re: AW: nur noch wenige aktive Assurer, Hans-Peter Lehner, 09/18/2009
- Re: AW: nur noch wenige aktive Assurer, dirk astrath, 09/18/2009
- Re: AW: nur noch wenige aktive Assurer, Benedikt Heintel, 09/18/2009
- Re: AW: nur noch wenige aktive Assurer, Dominik George, 09/18/2009
- Re: AW: nur noch wenige aktive Assurer, dirk astrath, 09/18/2009
- Re: AW: nur noch wenige aktive Assurer, Dr. Tilo Levante, 09/18/2009
- Re: AW: nur noch wenige aktive Assurer, Benedikt Heintel, 09/17/2009
- RE: Performance - Re: AW: nur noch wenige aktive Assurer, ulrich, 09/17/2009
- Re: Performance - Re: AW: nur noch wenige aktive Assurer, Florian Lagg, 09/17/2009
- Re: Performance - Re: AW: nur noch wenige aktive Assurer, Thomas Bremer, 09/17/2009
- Re: AW: nur noch wenige aktive Assurer, Markus Warg, 09/18/2009
Archive powered by MHonArc 2.6.16.