Quelle für Quadratwurzelalgorithmus

Gast #2460028
Hi, ich habe hier im Forum diesen Algorithmus gefunden:

Beitrag "Wurzel ziehen - VHDL"
1
public static int sqrt(int num) {
2
        int op = num;
3
        int res = 0;
4
        int one = 1 << 14; // The second-to-top bit is set: 1L<<30 for long
5
 
6
        // "one" starts at the highest power of four <= the argument.
7
        while (one > op)
8
            one >>= 2;
9
       
10
        while (one != 0) {
11
            if (op >= res + one) {
12
                op -= res + one;
13
                res += 2 * one;
14
            }
15
            res >>= 1;
16
            one >>= 2;
17
        }
18
        return res;
19
    }
Da ich den in einer wissenschaftlichen Arbeit verwenden möchte, brauche 
ich eine Quelle. Weiß jemand wer sich das ausgedacht hat? Also auf 
welchen Mathematiker das Verfahren zurück geht?

danke für eure Hilfe
Gast
Kann man den Cordic eigentlich so aufziehen, dass er einen 
Flash-Kombinatorik abgibt?

CORDIC ist ja ein iterativer Algo der nach einer gewissen Schrittzahl 
zum Ergebnis kommt. Wenn man die Iterationen als loop formuliert, müsste 
man ein Schaltwerk erhalten, das in einem Schritt arbeiten kann. Bei 
entsprechend geringer Frequenz natürlich.
(Firma: www.dossmatik.de)
Harko schrieb:
> Kann man den Cordic eigentlich so aufziehen, dass er einen
> Flash-Kombinatorik abgibt?

Was meinst du damit?



> CORDIC ist ja ein iterativer Algo der nach einer gewissen Schrittzahl
> zum Ergebnis kommt. Wenn man die Iterationen als loop formuliert, müsste
> man ein Schaltwerk erhalten, das in einem Schritt arbeiten kann. Bei
> entsprechend geringer Frequenz natürlich.

Geht sicher theoretisch, doch das macht man nicht. Die Stufen werden 
getaktet. Man kann bereits nach einem Takt den Eingang mit dem nächsten 
Wert füttern. So kann mit jedem Takt ein Wert ausgerechnet werden. Die 
Latenzzeit ist so lang, wie die Anzahl der Stufen.
Gast
Damit müsste aber die gesamte Latzen steigen. Wenn man soviele Daten gar 
nicht hat, um einen hohen Druchsatz zu bekommen, liessen sich viele 
Register und etwas Zeit sparen, wenn man ihn ungetaktet laufen lässt und 
ein multi cycle constraint verwendet, um die Daten verarbeiten zu 
können.
Gast
Ask once, read never...

Aber vielleicht arbeitet der OP in einem der Teile Deutschlands, wo bis 
zum 6. fast nirgends gearbeitet wird und liest daher z.Z. nicht mit.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.