DE102014118905A1 - Verfahren zur Vor- und Nachverarbeitung einer schnellen Arkustangensberechnung - Google Patents

Verfahren zur Vor- und Nachverarbeitung einer schnellen Arkustangensberechnung Download PDF

Info

Publication number
DE102014118905A1
DE102014118905A1 DE102014118905.1A DE102014118905A DE102014118905A1 DE 102014118905 A1 DE102014118905 A1 DE 102014118905A1 DE 102014118905 A DE102014118905 A DE 102014118905A DE 102014118905 A1 DE102014118905 A1 DE 102014118905A1
Authority
DE
Germany
Prior art keywords
value
bit
adjusted
arctangent
controller
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE102014118905.1A
Other languages
English (en)
Inventor
Ray M. Ransom
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
GM Global Technology Operations LLC
Original Assignee
GM Global Technology Operations LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by GM Global Technology Operations LLC filed Critical GM Global Technology Operations LLC
Publication of DE102014118905A1 publication Critical patent/DE102014118905A1/de
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/548Trigonometric functions; Co-ordinate transformations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/02Digital function generators
    • G06F1/03Digital function generators working, at least partly, by table look-up
    • G06F1/035Reduction of table size
    • G06F1/0353Reduction of table size by using symmetrical properties of the function, e.g. using most significant bits for quadrant control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2101/00Indexing scheme relating to the type of digital function generated
    • G06F2101/04Trigonometric functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/544Indexing scheme relating to group G06F7/544

Abstract

Ein Verfahren zum Berechnen eines Arkustangens umfasst, dass ein Vorzeichen für einen y-Wert und einen x-Wert in einen 3-Bit-Index codiert werden. Wenn der Absolutwert des x-Werts größer als der Absolutwert des y-Werts ist, werden die Absolutwerte des x-Werts und des y-Werts getauscht und wird ein Tausch-Bit des Index codiert, um anzugeben, dass der x-Wert und der y-Wert getauscht wurden. Der Arkustangens wird aus dem Quotienten des getauschten x-Werts dividiert durch den getauschten y-Wert berechnet. Es wird ein Segmentbasiswinkel aus einer Tabelle basierend auf dem codierten x-Bit, y-Bit und Tausch-Bit des Index extrahiert. Es wird ein codiertes Vorzeichen aus dem Segmentbasiswinkel extrahiert und auf den berechneten Arkustangensausgangswert angewandt, um einen korrigierten Arkustangenswert zu definieren. Der Segmentbasiswinkel wird zu dem korrigierten Arkustangenswert addiert, um den Arkustangens des Punkts zu definieren.

Description

  • TECHNISCHES GEBIET
  • Die Erfindung bezieht sich allgemein auf ein Verfahren zur Berechnung eines Arkustangens und spezieller auf die Vorverarbeitung und Nachverarbeitung von Daten für schnelle Arkustangensberechnungen.
  • HINTERGRUND
  • Fahrzeugcontroller müssen oftmals während der Steuerung verschiedener Fahrzeugsysteme einen Arkustangens berechnen. Beispielsweise muss ein Fahrzeugcontroller möglicherweise einen Arkustangens berechnen, um einen Elektromotor eines Hybridfahrzeugs korrekt zu steuern.
  • Ein Arkustangens kann nur über ein 45°-Segment eines 360°-Kreises berechnet werden. Dementsprechend muss jede x-Werteingabe und y-Werteingabe, die verwendet werden, um einen Arkustangenswert zu berechnen, von einem anfänglichen Oktanten (d. h. einem anfänglichen 45°-Segment) an das Segment des Kreises, das dem 45°-Segment entspricht, in dem der Arkustangens berechnet werden kann, angepasst werden. Nachdem der numerische Wert des Arkustangens berechnet wurde, muss er zurück in den anfänglichen Oktanten des Kreises angepasst werden.
  • ZUSAMMENFASSUNG
  • Es wird ein Verfahren zum Berechnen eines Arkustangens für einen Punkt bereitgestellt, der sich an einer Ebene durch einen y-Wert und einen x-Wert eines kartesischen Koordinatensystems befindet. Das Verfahren umfasst, dass ein y-Bit eines Index codiert wird, um ein Vorzeichen des y-Werts anzugeben, und ein x-Bit des Index codiert wird, um ein Vorzeichen des x-Werts anzugeben. Ein Vorzeichen-Bit eines binären Werts, der den y-Wert darstellt, wird entfernt, um einen bereinigten y-Wert zu definieren, und ein Vorzeichen-Bit eines binären Werts, der den x-Wert darstellt, wird entfernt, um einen bereinigten x-Wert zu definieren. Wenn der bereinigte x-Wert gleich dem bereinigten oder kleiner als der bereinigte y-Wert ist, wird ein Arkustangensberechnungseingangsargument berechnet, indem der bereinigte x-Wert durch den bereinigten y-Wert dividiert wird. Dann wird der Arkustangens des Eingangsarguments berechnet, um einen berechneten Arkustangensausgangswert zu definieren. Wenn der bereinigte x-Wert größer als der bereinigte y-Wert ist, wird der bereinigte x-Wert gegen den bereinigten y-Wert getauscht, um einen getauschten x-Wert zu definieren, und wird der bereinigte y-Wert gegen den bereinigten x-Wert getauscht, um einen getauschten y-Wert zu definieren. Es wird ein Tausch-Bit des Index codiert, um anzugeben, dass der bereinigte x-Wert und der bereinigte y-Wert getauscht wurden, um den getauschten x-Wert bzw. den getauschten y-Wert zu definieren. Wenn der bereinigte x-Wert größer als der bereinigte y-Wert ist, wird ein Arkustangensberechnungseingangsargument berechnet, indem der getauschte x-Wert durch den getauschten y-Wert dividiert wird. Dann wird der Arkustangens des Eingangsarguments berechnet, um einen berechneten Arkustangensausgangswert zu definieren. Es wird ein Segmentbasiswinkel aus einer Winkelanpassungstabelle basierend auf dem codierten x-Bit, dem codierten y-Bit und dem codierten Tausch-Bit des Index nachgeschlagen. Es wird ein numerisches Vorzeichen aus einem Umkehr-Bit extrahiert, welches in den extrahierten Segmentbasiswinkel codiert wird. Das numerische Vorzeichen des Umkehr-Bits von dem Segmentbasiswinkel wird auf den berechneten Arkustangensausgangswert angewandt, um einen korrigierten Arkustangenswert zu definieren, und das Umkehr-Bit des Segmentbasiswinkels wird bereinigt, um einen bereinigten Segmentbasiswinkel zu definieren. Der korrigierte Arkustangenswert wird zu dem bereinigten Segmentbasiswinkel addiert, um den Arkustangens des Punkts zu definieren.
  • Dementsprechend werden die drei Booleschen Bits, die in den Index codiert werden, d. h. das y-Bit, das x-Bit und das Tausch-Bit, verwendet, um einen codierten Wert von einer Nachschlagetabelle, d. h. der Winkelanpassungstabelle, abzurufen, welcher verwendet wird, um den berechneten numerischen Ausgang von der Arkustangensberechnung umzukehren und anzupassen. Dies minimiert die Vorverarbeitungs- und Nachverarbeitungszeit, die mit der Arkustangensberechnung in Verbindung steht, wodurch die Verarbeitungsgeschwindigkeit verbessert wird.
  • Die obigen Merkmale und Vorteile und andere Merkmale und Vorteile der vorliegenden Erfindung werden aus der folgenden detaillierten Beschreibung der geeignetsten Ausführungsformen zum Ausführen der Erfindung in Verbindung mit den begleitenden Zeichnungen leicht ersichtlich.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • 1 ist ein Graph, der die verschiedenen Oktanten eines Kreises an einem kartesischen Koordinatensystem zeigt.
  • 2 ist ein Diagramm, das alle möglichen Werte für einen Segmentbasiswinkel und ihr jeweiliges 32-Bit-Gleitkommabinärspeicherformat zeigt.
  • 3 ist ein Diagramm, das eine Winkelanpassungstabelle darstellt, um einen Index mit jedem der Oktanten des in 1 gezeigten Kreises in Beziehung zu bringen.
  • DETAILLIERTE BESCHREIBUNG
  • Fachleute werden erkennen, dass Begriffe wie beispielsweise ”oberhalb”, ”unterhalb”, ”aufwärts”, ”abwärts”, ”obere(r/s)”, ”untere(r/s)” etc. für die Figuren beschreibend verwendet werden und keine Einschränkungen des Schutzumfangs der Erfindung, wie er durch die beigefügten Ansprüche definiert ist, darstellen. Ferner kann die Erfindung hierin hinsichtlich funktionaler und/oder logischer Blockkomponenten und/oder verschiedener Verarbeitungsschritte beschrieben sein. Es sei angemerkt, dass derartige Blockkomponenten aus einer beliebigen Anzahl von Hardware-, Software- und/oder Firmwarekomponenten bestehen können, die ausgestaltet sind, um die spezifizierten Funktionen durchzuführen.
  • Bezug nehmend auf die Figuren, in denen in den verschiedenen Ansichten gleiche Bezugszeichen gleiche Teile angeben, wird ein Verfahren zum Berechnen eines Arkustangens für einen Punkt bereitgestellt. Das Verfahren kann durch einen Controller, wie beispielsweise, jedoch ohne Einschränkung, einen Computer oder ein Steuermodul, durchgeführt werden. Der Controller dient dazu, die verschiedenen Prozesse durchzuführen, die notwendig sind, um den Arkustangens gemäß dem nachstehend beschriebenen Verfahren zu berechnen. Der Controller umfasst die gesamte(n) Software, Hardware, Speicher, Prozessoren, Algorithmen, Codierung etc., die notwendig sind, um den Arkustangens wie nachstehend beschrieben zu berechnen.
  • Bezug nehmend auf 1 befindet sich der Punkt, für den der Arkustangens berechnet wird, an einer Ebene durch einen y-Wert und einen x-Wert eines kartesischen Koordinatensystems. In 1 ist eine x-Achse des kartesischen Koordinatensystems bei 20 gezeigt und ist eine y-Achse bei 22 gezeigt. Das kartesische Koordinatensystem ist in acht verschiedene Oktanten aufgeteilt. Jeder Oktant überspannt ein 45°-Segment. Ein erster Oktant ist allgemein bei 24 gezeigt, ein zweiter Oktant ist allgemein bei 26 gezeigt, ein dritter Oktant ist allgemein bei 28 gezeigt, ein vierter Oktant ist allgemein bei 30 gezeigt, ein fünfter Oktant ist allgemein bei 32 gezeigt, ein sechster Oktant ist allgemein bei 34 gezeigt, ein siebter Oktant ist allgemein bei 36 gezeigt und ein achter Oktant ist allgemein bei 38 gezeigt. Die Winkel des Koordinatensystems sind im Uhrzeigersinn aufsteigend gezeigt, wobei ein Null-Winkel als der Abschnitt der y-Achse, der über der x-Achse liegt, wie es auf der Seite zu sehen ist, definiert ist. Der erste Oktant erstreckt sich zwischen 0° und 45°. Der zweite Oktant erstreckt sich zwischen 45° und 90°. Der dritte Oktant erstreckt sich zwischen 90° und 135°. Der vierte Oktant erstreckt sich zwischen 135° und 180° (was auch als –180° dargestellt sein kann). Der fünfte Oktant erstreckt sich zwischen 180° und 225° (was auch als –135° dargestellt sein kann). Der sechste Oktant erstreckt sich zwischen 225° und 270° (was auch als –90° dargestellt sein kann). Der siebte Oktant erstreckt sich zwischen 270° und 315° (was auch als –45° dargestellt sein kann). Der achte Oktant erstreckt sich zwischen 315° und 0° (was auch als 360° dargestellt sein kann). Obwohl die verschiedenen Oktanten mit Graden beschrieben sind, sei angemerkt, dass die verschiedenen Oktanten alternativ im Bogenmaß beschrieben werden können. Ferner können die Oktanten auch mit Vorzeichen oder ohne Vorzeichen beschrieben werden. Dementsprechend können die verschiedenen Oktanten auf vier verschiedene Arten beschrieben werden: Grade mit Vorzeichen, Grade ohne Vorzeichen, Radianten mit Vorzeichen oder Radianten ohne Vorzeichen. 1 zeigt die verschiedenen Arten, auf die die Winkelposition der Oktanten beschrieben werden kann.
  • Ein erster Punkt 40 ist in dem ersten Oktanten gezeigt. Der Arkustangens des ersten Punkts 40 wird in Beispiel 1 nachstehend berechnet. Ein zweiter Punkt 42 ist in dem sechsten Oktanten gezeigt. Der Arkustangens des zweiten Punkts 42 wird in Beispiel 2 nachstehend berechnet.
  • Das Verfahren umfasst, dass ein Index in dem Speicher des Controllers festgelegt wird. Der Index ist ein 3-Bit-Binärwert, der verwendet wird, um eine Boolesche Information von drei verschiedenen Eingangsparametern (der y-Wert, der x-Wert und ein Tausch-Bit) zu speichern. Der Index wird später verwendet, um einen Wert von einer Nachschlagetabelle abzurufen, der verwendet wird, um einen berechneten Arkustangensausgangswert umzukehren und/oder anzupassen. Obwohl der Index nur 3 Bits verwendet, um die Boolesche Information der Eingangsparameter zu speichern, wird der Index in der Anzahl von Bits, die durch den Controller verwendet werden, codiert, wie beispielsweise, jedoch nicht eingeschränkt auf, ein 32-Bit-, IEEE-754-Standardgleitkommazahlenformat, wie es hierin gezeigt und beschrieben ist. Diese drei Bits des Index umfassen ein y-Bit, ein x-Bit und das Tausch-Bit. Beispielsweise kann der Index durch syx00 dargestellt werden, wobei ”s” das Tausch-Bit darstellt, ”y” das y-Bit darstellt und ”x” das x-Bit darstellt. Das x-Bit, das y-Bit und das Tausch-Bit werden zur Verwendung als Tabellennachschlageindex für eine Tabelle, die 32-Bit-Daten enthält, vorab verschoben. Vorzugsweise und wie oben dargestellt werden das x-Bit, das y-Bit und das Tausch-Bit in ein zweites Bit, ein drittes Bit bzw. ein viertes Bit des Index codiert.
  • Wie es bekannt ist, weist eine Gleitkommazahl mit einfacher Genauigkeit eine Größe von 32 Bits auf. In den meisten Prozessoren beträgt die Grundeinheit des Speichers 8 Bits (1 Byte). In den meisten Prozessoren, die ein 32-Bit-System verwenden, nimmt der 32-Bit-Wert 4 Byte Speicher ein, so dass, um auf eine zusammenhängende Gruppe einer 32-Bit-Zahl zu zeigen, die Adresse in Schritten von 4 inkrementiert werden muss. Das Vorabverschieben des Index um zwei Bits nach links multipliziert ihn mit 4. Da die Bits einzeln in den Index eingesetzt werden, ist das Verschieben frei, d. h., erfordert es keine Verarbeitungszeit. Wenn der Index rechtsbündig wäre, d. h. nicht vorab verschoben werden würde, müsste der Prozessor/Controller den Index vor dem Verwenden des Index bei einer Bezugnahme auf eine Nachschlagetabelle um zwei Bits nach links verschieben. Dementsprechend wird durch das Vorabverschieben des Index die Geschwindigkeit des Nachschlagens erhöht.
  • Um den Arkustangens für einen beliebigen gegebenen Punkt zu berechnen, wird das Vorzeichen des y-Werts in das y-Bit des Index codiert, welcher verwendet wird, um das Vorzeichen des y-Werts anzugeben. Das Vorzeichen ist entweder ein positives (+) Vorzeichen oder ein negatives (–) Vorzeichen. Wie es allgemein bekannt ist, wird ein positives Vorzeichen im Binärcode allgemein durch eine ”0” dargestellt und wird ein negatives Vorzeichen im Binärcode allgemein durch eine ”1” dargestellt. Dementsprechend kann, wenn der y-Wert ein negatives Vorzeichen umfasst, d. h. wenn der y-Wert eine negative Zahl ist, das y-Bit mit einer ”1” codiert werden, wohingegen, wenn der y-Wert eine positive Zahl umfasst, d. h. wenn der y-Wert eine positive Zahl ist, das y-Bit mit einer ”0” codiert werden kann. Das Vorzeichen des x-Werts wird in das x-Bit des index codiert, welches verwendet wird, um das Vorzeichen des x-Werts anzugeben. Das Vorzeichen ist entweder ein positives (+) Vorzeichen oder ein negatives (–) Vorzeichen. Dementsprechend kann, wenn der x-Wert ein negatives Vorzeichen umfasst, d. h. wenn der x-Wert eine negative Zahl ist, das x-Bit mit einer ”1” codiert werden, wohingegen, wenn der x-Wert eine positive Zahl umfasst, d. h. wenn der x-Wert eine positive Zahl ist, das x-Bit mit einer ”0” codiert werden kann.
  • Sobald die Vorzeichen des y-Werts und des x-Werts des Punkts in das y-Bit und das x-Bit des Index codiert wurden, werden die Vorzeichen von dem x-Wert und dem y-Wert bereinigt oder maskiert, um einen bereinigten x-Wert bzw. einen bereinigten y-Wert zu definieren. Der bereinigte x-Wert und der bereinigte y-Wert definieren effektiv einen Absolutwert des x-Werts bzw. des y-Werts. Die Vorzeichen des y-Werts und des x-Werts werden unter Verwendung von ganzzahligen Operationen anstatt von Gleitkommaoperationen bereinigt oder maskiert. Ganzzahlige Operationen umfassen mathematische und logische Operationen, die an ganzen Zahlen durchgeführt werden, wie es Fachleute verstehen werden. Der x-Wert und der y-Wert können in dem Speicher des Controllers in einem 32-Bit-Binärgleitkommaformat gespeichert werden und durch eine 32-Bit-Gleitkommazahl dargestellt werden. Dementsprechend kann das Bereinigen oder Maskieren des Vorzeichens von dem x-Wert und des Vorzeichens von dem y-Wert, um den Absolutwert des x-Werts und den Absolutwert des y-Werts zu definieren, das Bereinigen eines Vorzeichen-Bits in der 32-Bit-Gleitkommazahl des x-Werts bzw. des y-Werts umfassen, um den y-Wert und den x-Wert als positive Zahl zu definieren. Wie es allgemein bekannt ist, wird das Vorzeichen einer Zahl, die durch eine 32-Bit-Gleitkommazahl dargestellt ist, durch das Vorzeichen-Bit angegeben, das das höchstwertige Bit, typischerweise ganz links, der 32-Bit-Gleitkommazahl ist. Wie es allgemein bekannt ist, wird ein positives Vorzeichen im Binärcode allgemein durch eine ”0” dargestellt und wird ein negatives Vorzeichen im Binärcode allgemein durch eine ”1” dargestellt. Somit umfasst das Bereinigen des Vorzeichen-Bits das Ändern des Vorzeichen-Bits auf ”0”.
  • Nachdem das Vorzeichen des y-Werts und des x-Werts bereinigt wurden, um den bereinigten x-Wert bzw. den bereinigten y-Wert zu definieren, was effektiv den Absolutwert des x-Werts bzw. des y-Werts definiert, wird der bereinigte x-Wert (der effektive Absolutwert des x-Werts) mit dem bereinigten y-Wert (dem effektiven Absolutwert des y-Werts) verglichen, um zu ermitteln, ob der bereinigte x-Wert größer als der bereinigte y-Wert ist, oder ob der bereinigte x-Wert gleich dem bereinigten oder kleiner als der bereinigte y-Wert ist. Der bereinigte x-Wert wird mit dem bereinigten y-Wert unter Verwendung von ganzzahligen Operationen anstatt von Gleitkommaoperationen verglichen. Dementsprechend wird der bereinigte x-Wert mit dem bereinigten y-Wert unter Verwendung eines ganzzahligen Vergleichs anstatt eines Gleitkommavergleichs verglichen. Da der Arkustangens eines Winkels aus einem Quotienten eines x-Werts dividiert durch einen y-Wert berechnet wird, muss der y-Wert, der der Nenner ist, eine Zahl, die nicht Null ist, umfassen. Daher wird, wenn der bereinigte y-Wert (der effektive Absolutwert des y-Werts) gleich Null ist, ein Wert gleich Null als der berechnete Arkustangensausgangswert des Punkts zurückgegeben. Wenn der bereinigte x-Wert (der effektive Absolutwert des x-Werts) gleich dem bereinigten oder kleiner als der bereinigte y-Wert (der effektive Absolutwert des y-Werts) ist, wird ein Arkustangensberechnungseingangsargument berechnet, indem der bereinigte x-Wert durch den bereinigten y-Wert dividiert wird. Der Arkustangens des Eingangsarguments wird dann berechnet, um den berechneten Arkustangensausgangswert zu definieren. Somit wird der Arkustangens des Quotienten des bereinigten x-Werts dividiert durch den bereinigten y-Wert berechnet, um den berechneten Arkustangensausgangswert zu definieren.
  • Wenn der bereinigte x-Wert (der effektive Absolutwert des x-Werts) größer als der bereinigte y-Wert (der effektive Absolutwert des y-Werts) ist, wird der bereinigte x-Wert gegen den bereinigten y-Wert getauscht, um einen getauschten x-Wert zu definieren, und der bereinigte y-Wert wird gegen den bereinigten x-Wert getauscht, um einen getauschten y-Wert zu definieren. Dementsprechend ist der getauschte x-Wert gleich dem bereinigten y-Wert (dem effektiven Absolutwert des y-Werts) und ist der getauschte y-Wert gleich dem bereinigten x-Wert (dem effektiven Absolutwert des x-Werts). Wenn der Punkt in den zweiten Oktanten 26, den vierten Oktanten 30, den sechsten Oktanten 34 oder den achten Oktanten 38 fällt, werden die bereinigten Werte des x-Werts und des y-Werts getauscht.
  • Wenn der bereinigte x-Wert und der bereinigte y-Wert getauscht werden, wird das Tausch-Bit des Index codiert, um anzugeben, dass der bereinigte x-Wert und der bereinigte y-Wert getauscht wurden, um den getauschten x-Wert bzw. den getauschten y-Wert zu definieren. Bei der beispielhaften Ausführungsform wird das Tausch-Bit mit einer ”0” codiert, um anzugeben, dass der bereinigte x-Wert und der bereinigte y-Wert nicht getauscht wurden. Im Gegensatz dazu wird bei der beispielhaften Ausführungsform das Tausch-Bit mit einer ”1” codiert, um anzugeben, dass der bereinigte x-Wert und der bereinigte y-Wert getauscht wurden. Wenn beispielsweise der Punkt einen x-Wert gleich –4 und einen y-Wert gleich –3 umfasst, ist der bereinigte x-Wert (4) größer als der bereinigte y-Wert (3) und werden die bereinigten Werte des x-Werts und des y-Werts getauscht. Somit wird das Tausch-Bit mit ”1” codiert. Da sowohl der x-Wert als auch der y-Wert ein negatives Vorzeichen umfassen, werden sowohl das x-Bit als auch das y-Bit mit ”1” codiert. Dementsprechend wird bei der beispielhaften Ausführungsform der codierte Index für einen Punkt mit einem x-Wert gleich –4 und einem y-Wert gleich –3 in Binärform in dem vorab verschobenen Index durch 11100 dargestellt. Wenn der bereinigte x-Wert größer als der bereinigte y-Wert ist, und nachdem das Tausch-Bit in den Index codiert wurde, wird ein Arkustangensberechnungseingangsargument berechnet, indem der getauschte x-Wert durch den getauschten y-Wert dividiert wird. Dann wird der Arkustangens des Eingangsarguments berechnet, um den berechneten Arkustangensausgangswert zu definieren. Somit wird der Arkustangens des Quotienten des getauschten x-Werts dividiert durch den getauschten y-Wert berechnet, um den berechneten Arkustangensausgangswert zu definieren.
  • Bei der vorstehenden beispielhaften Ausführungsform wird das Tausch-Bit mit einer ”1” codiert, um anzugeben, dass der bereinigte x-Wert und der bereinigte y-Wert getauscht wurden, und wird es mit einer ”0” codiert, um anzugeben, dass der bereinigte x-Wert und der bereinigte y-Wert nicht getauscht wurden. Es sei jedoch angemerkt, dass die Polarität des Tausch-Bits umgekehrt werden kann, wobei das Tausch-Bit mit einer ”0” codiert wird, um anzugeben, dass der bereinigte x-Wert und der bereinigte y-Wert getauscht wurden, und mit einer ”1” codiert wird, um anzugeben, dass der bereinigte x-Wert und der bereinigte y-Wert nicht getauscht wurden. Wenn die Polarität des Tausch-Bits bei der oben beschriebenen beispielhaften Ausführungsform umgekehrt wird, ist zu verstehen, dass die verschiedenen nachstehend ausführlich beschriebenen Nachschlagetabellen dementsprechend umgeordnet werden müssen.
  • Der codierte Index, der die codierten Werte für das x-Bit, das y-Bit und das Tausch-Bit umfasst, wird verwendet, um einen Segmentbasiswinkel aus einer Winkelanpassungstabelle nachzuschlagen. Insbesondere durch das Kombinieren aller Informationen, die für die Nachverarbeitung des berechneten Arkustangensausgangswerts erforderlich sind, zu einem einzelnen Element der Winkelanpassungstabelle ist nur ein Zugriff auf eine einzelne Nachschlagetabelle (die Winkelanpassungstabelle) erforderlich, um den Arkustangens des Punkts zu berechnen, wodurch die Speichernutzung reduziert wird und die Verarbeitungsgeschwindigkeit erhöht wird.
  • Der Segmentbasiswinkel kann in dem Speicher des Controllers in einer 32-Bit-Binärgleitkommaform gespeichert und durch eine 32-Bit-Gleitkommazahl dargestellt werden. Bezug nehmend auf 2 werden alle möglichen Werte des Segmentbasiswinkels, die in der Winkelanpassungstabelle verwendet werden können, in Spalte 44 bereitgestellt und wird die 32-Bit-Gleitkommazahl für jeden Segmentbasiswinkel in Spalte 46 bereitgestellt. Spalte 48 von 3 zeigt eine hexadezimale Darstellung der Gleitkommazahl für jeden möglichen Wert des Segmentbasiswinkels.
  • Vorzugsweise wird das Umkehr-Bit in Bit 12 oder Bit 13 der 32-Bit-Gleitkommazahl codiert, die den Segmentbasiswinkel darstellt. Bit 12 ist in Spalte 50 von 2 gezeigt, und Bit 13 ist in Spalte 52 von 2 gezeigt. 2 zeigt, dass Bit 12 und Bit 13 für alle möglichen Werte des Segmentbasiswinkels beide Null sind. Dementsprechend wird Bit 12 oder Bit 13 verwendet, um das Umkehr-Bit in die 32-Bit-Gleitkommazahl zu codieren, die den Segmentbasiswinkel darstellt, da Bit 12 und Bit 13 ansonsten für alle möglichen Werte des Segmentbasiswinkels immer Null sind.
  • Die Winkelanpassungstabelle der beispielhaften Ausführungsform ist in 3 gezeigt. Die in 3 gezeigte Winkelanpassungstabelle ist zur Verwendung mit Graden ohne Vorzeichen ausgestaltet. Es sei angemerkt, dass, wenn die Arkustangensberechnungen unter Verwendung einer anderen Winkeleinheit durchgeführt werden würden, wie beispielsweise mit Graden mit Vorzeichen, Radianten ohne Vorzeichen oder Radianten mit Vorzeichen, die Winkelanpassungstabelle anders ausgestaltet wäre, um die gewünschte Winkeleinheit zu verwenden.
  • In 3 listet Spalte 56 alle 8 möglichen Kombinationen für das Tausch-Bit, das y-Bit und das x-Bit auf, wobei s das Tausch-Bit darstellt, y das y-Bit darstellt und x das x-Bit darstellt. Der Segmentbasiswinkel für jede mögliche codierte Kombination des Index wird in Spalte 58 bereitgestellt. Jede Zeile von Spalte 58 umfasst eine Gleitkommazahl oder eine Gleitkommazahl ver”ODER”t mit einer ganzen Zahl, was ein Umkehr-Bit setzt (nachstehend ausführlicher beschrieben). In Spalte 60 wird ein Ausgangswinkelanpassungsvorzeichenwert für jede mögliche codierte Kombination des Index bereitgestellt. Der spezifische Oktant für jede mögliche codierte Kombination des Index wird in Spalte 62 bereitgestellt.
  • Der Segmentbasiswinkel und der codierte Ausgangswinkelanpassungsvorzeichenwert für jede mögliche codierte Kombination des Index werden in Spalte 64 in Hexadezimalform bereitgestellt. Der Segmentbasiswinkel und der codierte Ausgangswinkelanpassungsvorzeichenwert für jede mögliche codierte Kombination des Index werden in Spalte 66 in 32-Bit-Binärgleitkommaform bereitgestellt. Der Segmentbasiswinkel und der codierte Ausgangswinkelanpassungsvorzeichenwert für jede mögliche codierte Kombination des Index werden in Spalte 68 in Gleitkommadezimalform bereitgestellt.
  • Sobald der Segmentbasiswinkel aus der Winkelanpassungstabelle auf der Grundlage der spezifischen Codierung des Index nachgeschlagen wird, wird ein numerisches Vorzeichen für den berechneten Arkustangensausgangswert aus einem in dem Segmentbasiswinkel codierten Umkehr-Bit extrahiert. Das numerische Vorzeichen kann entweder ein positives (+) Vorzeichen für eine positive Zahl oder ein negatives (–) Vorzeichen für eine negative Zahl umfassen. Wie es allgemein bekannt ist, wird ein positives Vorzeichen allgemein in eine 32-Bit-Gleitkommazahl als ”0” codiert und wird ein negatives Vorzeichen allgemein in eine 32-Bit-Gleitkommazahl als ”1” codiert. Dementsprechend kann das Umkehr-Bit mit einer ”0” für ein positives Vorzeichen oder mit einer ”1” für ein negatives Vorzeichen codiert werden. Wie oben erwähnt, wird das Umkehr-Bit in Bit 12 oder Bit 13 der 32-Bit-Gleitkommazahl codiert, die den Segmentbasiswinkel darstellt, da Bit 12 und Bit 13 ansonsten für alle Werte des Segmentbasiswinkels immer Null sind [engl.: ”all”]. Bit 12 ist in Spalte 70 von 3 gezeigt, und Bit 13 ist in Spalte 72 von 3 gezeigt. Wie es in 3 gezeigt ist, wird Bit 12 verwendet, um das Umkehr-Bit in die 32-Bit-Gleitkommazahl zu codieren, die den Segmentbasiswinkel darstellt.
  • Das numerische Vorzeichen, das aus dem Umkehr-Bit extrahiert wird, wird auf den berechneten Arkustangensausgangswert, der oben berechnet wurde, angewandt, um einen korrigierten Arkustangenswert zu definieren. Dementsprechend kann der korrigierte Arkustangenswert entweder eine negative Zahl oder eine positive Zahl umfassen. Das numerische Vorzeichen wird auf den berechneten Arkustangensausgangswert unter Verwendung von ganzzahligen Operationen anstatt von Gleitkommaoperationen angewandt. Das Umkehr-Bit des Segmentbasiswinkels wird dann maskiert oder bereinigt, um einen bereinigten Segmentbasiswinkel zu definieren. Der bereinigte Segmentbasiswinkel ist der wahre oder tatsächliche Wert des Segmentbasiswinkels. Dementsprechend kann der bereinigte Segmentbasiswinkel entweder eine positive Zahl oder eine negative Zahl umfassen.
  • Das Bereinigen des Umkehr-Bits des Segmentbasiswinkels zum Definieren des bereinigten Segmentbasiswinkels umfasst das Bereinigen des Umkehr-Bits in der 32-Bit-Gleitkommazahl, die den Segmentbasiswinkel darstellt. Das Umkehr-Bit wird unter Verwendung einer Basis-Ganzzahl-”Bereinigungs”-Operation bereinigt, wie es Fachleute verstehen werden.
  • Der korrigierte Arkustangenswert wird dann zu dem bereinigten Segmentbasiswinkel (d. h. dem wahren oder tatsächlichen Wert des Segmentbasiswinkels) addiert, um den Arkustangens des Punkts zu definieren. Es sei angemerkt, dass der korrigierte Arkustangenswert entweder eine positive oder eine negative Zahl umfassen kann, und dass der bereinigte Segmentbasiswinkel auch entweder eine positive oder eine negative Zahl umfassen kann. Dementsprechend kann das Addieren des korrigierten Arkustangenswerts zu dem bereinigten Segmentbasiswinkel das Addieren einer positiven Zahl zu einer positiven Zahl, einer negativen Zahl zu einer positiven Zahl oder einer negativen Zahl zu einer negativen Zahl umfassen.
  • Der oben beschriebene Prozess entfernt alle Zweige von der Vorverarbeitung und der Nachverarbeitung der Eingangsdaten, die verwendet werden, um den Arkustangens des Punkts zu berechnen. Wie es Fachleute verstehen werden, ist ein Zweig eine Anweisung in einem Computerprogramm, die bei einer Ausführung durch den Controller bewirken kann, dass der Controller mit einer Ausführung einer anderen Anweisungssequenz beginnt. Jedes Mal, wenn der lineare Fluss des Prozessors durch einen Zweig unterbrochen wird, verlangsamt sich der Prozessor. Das oben beschriebene Verfahren entfernt alle Zweige von der Vorverarbeitung und der Nachverarbeitung der Eingangsdaten, wodurch die zum Berechnen des Arkustangens des Punkts erforderliche Geschwindigkeit erhöht wird.
  • Beispiel 1
  • Der Prozess zum Berechnen des Arkustangens für den ersten Punkt 40 wird hierin nachstehend beschrieben. Der erste Punkt 40 umfasst einen y-Wert 80, der gleich 4 ist, und einen x-Wert 82, der gleich 3 ist. Da sowohl der y-Wert 80 als auch der x-Wert 82 positiv sind, werden sowohl das y-Bit als auch das x-Bit des Index mit einer ”0” codiert. Die Vorzeichen-Bits der 32-Bit-Gleitkommazahlen, die den x-Wert bzw. den y-Wert darstellen, werden dann maskiert oder bereinigt, um den bereinigten x-Wert bzw. den bereinigten y-Wert darzustellen. Wie oben erwähnt, definiert der bereinigte x-Wert effektiv den Absolutwert des x-Werts und definiert der bereinigte y-Wert effektiv den Absolutwert des y-Werts. Der bereinigte x-Wert ist gleich 3, und der bereinigte y-Wert ist gleich 4. Da der bereinigte x-Wert kleiner als der bereinigte y-Wert ist, werden der bereinigte x-Wert und der bereinigte y-Wert nicht getauscht, und das Tausch-Bit wird in den Index mit einem Wert von ”0” codiert. Dementsprechend wird das Tausch-Bit mit einer ”0” codiert, wird das y-Bit mit einer ”0” codiert und wird das x-Bit mit einer ”0” codiert. Daher kann der verschobene Index durch einen binären Wert mit 00000 dargestellt werden. Der Arkustangens des Quotienten des bereinigten x-Werts dividiert durch den bereinigten y-Wert wird dann berechnet, um den berechneten Arkustangensausgangswert zu definieren. Genauer gesagt wird ein Arkustangensberechnungseingangsargument berechnet, indem der bereinigte x-Wert durch den bereinigten y-Wert dividiert wird. Dann wird der Arkustangens des Eingangsarguments, d. h. der Quotient des bereinigten x-Werts dividiert durch den bereinigten y-Wert, berechnet, um den berechneten Arkustangensausgangswert zu definieren. Dementsprechend ist das Arkustangensberechnungseingangsargument gleich dem Quotienten von 3 dividiert durch 4. Der berechnete Arkustangensausgangswert ist gleich dem Arkustangens des [engl.: ”if”] Eingangswerts, d. h. der Arkustangens des Quotienten von 3 dividiert durch 4 (arctan 3/4), was gleich 36,87° ist. Bezug nehmend auf 3 wird der Segmentbasiswinkel für den codierten Index von der Winkelanpassungstabelle abgerufen. Der Segmentbasiswinkel für den Index, wobei das Tausch-Bit als ”0” definiert ist, das y-Bit als ”0” definiert ist und das x-Bit als ”0” definiert ist, wird in Zeile 84 von 3 bereitgestellt und umfasst einen Wert von 0°. Die 32-Bit-Gleitkommazahl für den Segmentbasiswinkel mit einem Wert von 0° wird in Spalte 66, Zeile 84 von 3 bereitgestellt. Spalte 70 von 3 stellt das Umkehr-Bit für den Segmentbasiswinkel bereit, das eine Codierung von ”0” umfasst, was ein positives Vorzeichen angibt. Das Umkehr-Bit wird dann bereinigt, um den bereinigten Segmentbasiswinkel zu definieren. Wie oben erwähnt definiert der bereinigte Segmentbasiswinkel den tatsächlichen oder wahren Wert des Segmentbasiswinkels, der entweder eine negative oder eine positive Zahl sein kann. Da das Umkehr-Bit bereits mit ”0” codiert wurde, was ein positives Vorzeichen angibt, wird das Umkehr-Bit bei diesem Beispiel nicht geändert und ist der bereinigte Segmentbasiswinkel gleich 0°. Das Umkehr-Bit, das aus dem Segmentbasiswinkel extrahiert wird (bei diesem Beispiel ein positives Vorzeichen), wird dann auf den berechneten Arkustangensausgangswert angewandt, um den korrigierten Arkustangenswert zu definieren. Wie oben erwähnt ist der berechnete Arkustangensausgangswert gleich 36,87° und ist das aus dem Segmentbasiswinkel extrahierte Umkehr-Bit positiv, und somit ist der korrigierte Arkustangenswert gleich +36,87°. Der korrigierte Arkustangenswert (+36,87°) wird dann zu dem bereinigten Segmentbasiswinkel (0°) addiert, um den Arkustangens des ersten Punkts 40 zu definieren. Dementsprechend wird der Arkustangens des ersten Punkts 40 al 36,87° und wie durch Winkel 86 angegeben, gezeigt in 1, berechnet.
  • Beispiel 2
  • Der Prozess zum Berechnen des Arkustangens für den zweiten Punkt 42 wird hierin nachstehend beschrieben. Der zweite Punkt 42 umfasst einen x-Wert 88, der gleich –4 ist, und einen y-Wert 90, der gleich –3 ist. Da sowohl der x-Wert 88 als auch der y-Wert 90 negativ sind, werden sowohl das x-Bit als auch das y-Bit des Index mit einer ”1” codiert. Die Vorzeichen-Bits der 32-Bit-Gleitkommazahlen, die den x-Wert 88 bzw. den y-Wert 90 darstellen, werden dann bereinigt, um den bereinigten x-Wert bzw. den bereinigten y-Wert zu definieren. Wie oben erwähnt, definieren der bereinigte x-Wert und der bereinigte y-Wert effektiv den Absolutwert des x-Werts bzw. des y-Werts. Der bereinigte x-Wert ist gleich 4, und der bereinigte y-Wert ist gleich 3. Da der bereinigte x-Wert größer als der bereinigte y-Wert ist (4 > 3), werden der bereinigte x-Wert und der bereinigte y-Wert getauscht, um den getauschten x-Wert und den getauschten y-Wert zu definieren. Somit ist der getauschte x-Wert gleich dem bereinigten y-Wert (getauschter x-Wert = 3), und ist der getauschte y-Wert gleich dem bereinigten x-Wert (getauschter y-Wert gleich 4). Da der bereinigte x-Wert und der bereinigte y-Wert getauscht werden, wird das Tausch-Bit in den Index mit einem Wert von ”1” codiert. Dementsprechend wird das Tausch-Bit mit einer ”1” codiert, wird das y-Bit mit einer ”1” codiert und wird das x-Bit mit einer ”1” codiert. Daher kann der verschobene Index durch einen binären Wert mit 11100 dargestellt werden. Dann wird der Arkustangens des Quotienten des getauschten x-Werts dividiert durch den getauschten y-Wert berechnet, um den berechneten Arkustangensausgangswert zu definieren. Genauer gesagt wird ein Arkustangensberechnungseingangsargument berechnet, indem der getauschte x-Wert durch den getauschten y-Wert dividiert wird. Dann wird der Arkustangens des Eingangsarguments, d. h. der Quotient des getauschten x-Werts dividiert durch den getauschten y-Wert, berechnet, um den berechneten Arkustangensausgangswert zu definieren. Dementsprechend ist das Arkustangensberechnungseingangsargument gleich dem Quotienten von 3 dividiert durch 4. Der berechnete Arkustangensausgangswert ist gleich dem Arkustangens des Eingangswerts, d. h. der Arkustangens des Quotienten von 3 dividiert durch 4 (arctan 3/4), was gleich 36,87° ist. Bezug nehmend auf 3 wird der Segmentbasiswinkel für den codierten Index von der Winkelanpassungstabelle abgerufen. Der Segmentbasiswinkel für den Index, wobei das Tausch-Bit mit ”1” definiert ist, das y-Bit mit ”1” definiert ist und das x-Bit mit ”1” definiert ist, wird in Zeile 92 von 3 bereitgestellt und umfasst einen Wert von ”270,0|0x1000”, ”0x43871000” in ganzzahliger Form oder ”270,125” in Gleitkommazahlform. Die 32-Bit-Gleitkommazahl für den Segmentbasiswinkel mit einem Wert von 0x43871000, was gleich 270,125 ist, wird in Spalte 66, Zeile 92 von 3 bereitgestellt. Spalte 70 von 3 stellt das Umkehr-Bit für den Segmentbasiswinkel bereit, das eine Codierung von ”1” umfasst, was ein negatives Vorzeichen angibt. Das Umkehr-Bit wird dann bereinigt, um den bereinigten Segmentbasiswinkel zu definieren, der der tatsächliche oder wahre Wert des Segmentbasiswinkels ist. Da das Umkehr-Bit mit ”1” codiert wurde, was ein negatives Vorzeichen angibt, wird das Umkehr-Bit bereinigt, um einen Wert von ”0” zu definieren, wodurch der Segmentbasiswinkel erneut mit seinem wahren oder tatsächlichen Wert von 270° gespeichert wird.
  • Das negative Vorzeichen, das durch das Umkehr-Bit angegeben wird, welches aus dem Segmentbasiswinkel extrahiert wurde, wird dann auf den berechneten Arkustangensausgangswert angewandt, um den korrigierten Arkustangenswert zu definieren. Wie oben erwähnt ist der berechnete Arkustangensausgangswert gleich 36,87° und ist das aus dem Segmentbasiswinkel extrahierte Umkehr-Bit negativ, so dass der korrigierte Arkustangenswert gleich –36,87° ist. Der korrigierte Arkustangenswert (–36,87°) wird dann zu dem bereinigten Segmentbasiswinkel (270°) addiert, um den Arkustangens des zweiten Punkts 42 zu definieren. Dementsprechend wird der Arkustangens des zweiten Punkts 42 mit 233,13° berechnet, wie es durch Winkel 94, gezeigt in 1, angegeben ist.
  • Die detaillierte Beschreibung und die Zeichnungen oder Figuren unterstützen und beschreiben die Erfindung, der Schutzumfang der Erfindung ist jedoch lediglich durch die Ansprüche definiert. Während einige der geeignetsten Ausführungsformen und andere Ausführungsformen zum Ausführen der beanspruchten Erfindung ausführlich beschrieben wurden, gibt es verschiedene alternative Entwürfe und Ausführungsformen zum Ausführen der Erfindung, die in den beigefügten Ansprüchen definiert ist.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Nicht-Patentliteratur
    • IEEE-754-Standardgleitkommazahlenformat [0014]

Claims (10)

  1. Verfahren zum Berechnen eines Arkustangens für einen Punkt, der sich an einer Ebene durch einen y-Wert und einen x-Wert eines kartesischen Koordinatensystems befindet, wobei das Verfahren umfasst, dass: ein y-Bit eines Index mit einem Controller codiert wird, um ein Vorzeichen des y-Werts anzugeben; ein x-Bit des Index mit dem Controller codiert wird, um ein Vorzeichen des x-Werts anzugeben; ein Vorzeichen-Bit eines binären Werts, der den y-Wert darstellt, mit dem Controller bereinigt wird, um einen bereinigten y-Wert zu definieren; ein Vorzeichen-Bit eines binären Werts, der den x-Wert darstellt, mit dem Controller bereinigt wird, um einen bereinigten x-Wert zu definieren; der Arkustangens des Quotienten des bereinigten x-Werts dividiert durch den bereinigten y-Wert mit dem Controller berechnet wird, um einen berechneten Arkustangensausgangswert zu definieren, wenn der bereinigte x-Wert gleich dem bereinigten oder kleiner als der bereinigte y-Wert ist; der bereinigte x-Wert gegen den bereinigten y-Wert mit dem Controller getauscht wird, um einen getauschten x-Wert zu definieren, und der bereinigte y-Wert gegen den bereinigten x-Wert mit dem Controller getauscht wird, um einen getauschten y-Wert zu definieren, wenn der bereinigte x-Wert größer als der bereinigte y-Wert ist; ein Tausch-Bit des Index mit dem Controller codiert wird, um anzugeben, dass der bereinigte x-Wert und der bereinigte y-Wert getauscht wurden, um den getauschten x-Wert bzw. den getauschten y-Wert zu definieren; der Arkustangens des Quotienten des getauschten x-Werts dividiert durch den getauschten y-Wert mit dem Controller berechnet wird, um einen berechneten Arkustangensausgangswert zu definieren, wenn der bereinigte x-Wert größer als der bereinigte y-Wert ist; ein Segmentbasiswinkel mit dem Controller aus einer Winkelanpassungstabelle auf der Grundlage des codierten x-Bits, des codierten y-Bits und des codierten Tausch-Bits des Index nachgeschlagen wird; ein numerisches Vorzeichen aus einem in den extrahierten Segmentbasiswinkel codierten Umkehr-Bit mit dem Controller extrahiert wird; das numerische Vorzeichen des Umkehr-Bits von dem Segmentbasiswinkel mit dem Controller auf den berechneten Arkustangensausgangswert angewandt wird, um einen korrigierten Arkustangenswert zu definieren; das Umkehr-Bit des Segmentbasiswinkels mit dem Controller bereinigt wird, um einen bereinigten Segmentbasiswinkel zu definieren; und der korrigierte Arkustangenswert mit dem Controller zu dem bereinigten Segmentbasiswinkel addiert wird, um den Arkustangens des Punkts zu definieren.
  2. Verfahren nach Anspruch 1, das ferner umfasst, dass der Index in einem Speicher des Controllers festgelegt wird.
  3. Verfahren nach Anspruch 1, wobei das Bereinigen des Vorzeichen-Bits des binären Werts, der den y-Wert darstellt, ferner als Bereinigen des Vorzeichen-Bits des binären Werts, der den y-Wert darstellt, unter Verwendung von ganzzahligen Operationen eines Prozessors des Controllers definiert ist, und wobei das Bereinigen des Vorzeichen-Bits des binären Werts, der den x-Wert darstellt, um den bereinigten x-Wert zu definieren, ferner als Bereinigen des Vorzeichen-Bits des binären Werts, der den x-Wert darstellt, unter Verwendung von ganzzahligen Operationen des Prozessors des Controllers definiert ist.
  4. Verfahren nach Anspruch 3, das ferner umfasst, dass der bereinigte x-Wert mit dem bereinigten y-Wert unter Verwendung von ganzzahligen Operationen des Prozessors des Controllers verglichen wird, um zu ermitteln, ob der bereinigte x-Wert größer als der bereinigte y-Wert ist.
  5. Verfahren nach Anspruch 3, das ferner umfasst, dass ein Wert gleich Null zurückgegeben wird, wenn der bereinigte y-Wert gleich Null ist.
  6. Verfahren nach Anspruch 1, wobei das Umkehr-Bit des Segmentbasiswinkels in Bit 12 oder Bit 13 einer 32-Bit-Gleitkommazahl, die den Segmentbasiswinkel darstellt, codiert wird.
  7. Verfahren nach Anspruch 1, wobei die Winkelanpassungstabelle die einzige Nachschlagetabelle ist, auf die Bezug genommen wird, um den Arkustangens des Punkts zu berechnen.
  8. Verfahren nach Anspruch 1, wobei der Index ein 3-Bit-Binärwert ist.
  9. Verfahren nach Anspruch 8, wobei das x-Bit, das y-Bit und das Tausch-Bit zur Verwendung als Tabellennachschlageindex für eine Tabelle, die 32-Bit-Daten enthält, vorab verschoben werden.
  10. Verfahren nach Anspruch 1, wobei das x-Bit, das y-Bit und das Tausch-Bit in ein zweites Bit, ein drittes Bit bzw. ein viertes Bit des Index codiert werden.
DE102014118905.1A 2013-12-24 2014-12-17 Verfahren zur Vor- und Nachverarbeitung einer schnellen Arkustangensberechnung Withdrawn DE102014118905A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/140,026 US20150178047A1 (en) 2013-12-24 2013-12-24 Method of fast arctangent calculation pre and post processing
US14/140,026 2013-12-24

Publications (1)

Publication Number Publication Date
DE102014118905A1 true DE102014118905A1 (de) 2015-06-25

Family

ID=53275517

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102014118905.1A Withdrawn DE102014118905A1 (de) 2013-12-24 2014-12-17 Verfahren zur Vor- und Nachverarbeitung einer schnellen Arkustangensberechnung

Country Status (3)

Country Link
US (1) US20150178047A1 (de)
CN (1) CN104732056A (de)
DE (1) DE102014118905A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3260977B1 (de) * 2016-06-21 2019-02-20 Stichting IMEC Nederland Schaltung und verfahren zur verarbeitung von daten
CN109614073B (zh) * 2018-10-28 2023-08-08 西南电子技术研究所(中国电子科技集团公司第十研究所) 四象限反正切函数硬件实现电路

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4164022A (en) * 1978-05-05 1979-08-07 Sperry Rand Corporation Electronic digital arctangent computational apparatus
US5648924A (en) * 1995-04-18 1997-07-15 Motorola, Inc. Method and apparatus for finding arctangents
JP3201364B2 (ja) * 1998-11-20 2001-08-20 日本電気株式会社 角度演算回路
TW200915096A (en) * 2007-09-27 2009-04-01 Alcor Micro Corp Angle computation method and related circuit
JP4757328B2 (ja) * 2009-07-03 2011-08-24 富士通株式会社 逆正接演算装置及び逆正接演算プログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
IEEE-754-Standardgleitkommazahlenformat

Also Published As

Publication number Publication date
CN104732056A (zh) 2015-06-24
US20150178047A1 (en) 2015-06-25

Similar Documents

Publication Publication Date Title
DE112016005536T5 (de) Bestimmen von reihenfolgen einer ausführung eines neuronalen netzes
DE112007002225B4 (de) Erstellen und Codieren von Glyphen
DE102020215942A1 (de) System und verfahren für unüberwachte domänenanpassung mit mischungstraining
DE102013213397A1 (de) Verfahren und Vorrichtung zum Bereitstellen von Stützstellendaten für ein datenbasiertes Funktionsmodell
DE202019006019U1 (de) Techniken zum Analysieren von Fahrzeugdesignabweichungen unter Verwendung von Deep Learning mit neuronalen Netzwerken
DE102015120118A1 (de) Werkzeugwegkurvenerzeugungsverfahren und Werkzeugwegkurvenerzeugungsvorrichtung
DE102018007773A1 (de) Numerisches Steuergerät
DE102017218851A1 (de) Verfahren, Vorrichtung und Computerprogramm zur Erstellung eines tiefen neuronalen Netzes
DE102016222814A1 (de) Verfahren zum berechnen einer ausgabe eines neuronalen netzes
DE102014118905A1 (de) Verfahren zur Vor- und Nachverarbeitung einer schnellen Arkustangensberechnung
DE102014225039A1 (de) Verfahren und Vorrichtung zum Bereitstellen von spärlichen Gauß-Prozess-Modellen zur Berechnung in einem Motorsteuergerät
DE102019118340A1 (de) Invertierungskodierung für einen bus mit begrenzter hamming-distanz für schnittstellen mit mehreren bytes
DE102020214595B4 (de) Verfahren und Vorrichtung zum Betreiben eines Fahrzeugs
DE102013212840B4 (de) Modellberechnungseinheit und Steuergerät zur Berechnung eines datenbasierten Funktionsmodells mit Daten in verschiedenen Zahlenformaten
DE102022212269A1 (de) Halbleitervorrichtung
WO2009124663A1 (de) Semi-globale korrespondenzsuche in stereobildern
DE112015007097B4 (de) Übertragungssteuervorrichtung, Fahrzeug und Übertragungssteuerverfahren
DE102013208836A1 (de) Verfahren und Vorrichtung zur Erzeugung eines Hash-Werts
DE102013022245A1 (de) Implementierung mit einem bilateralen filter (bf) mit geringer komplexität in einer datenverarbeitungseinrichtung
DE112018004402B4 (de) Verbesserte leistung von verteilter, ortsbezogener deduplikation
DE102019207230B3 (de) Digitaler Oszillator
DE102014200493A1 (de) Verfahren und Vorrichtung zur Berechnung eines Ergebniswertes einer Division aus einem Dividenden und einem Divisor
DE102014208379A1 (de) Verfahren und Vorrichtung zum Ermitteln eines Funktionswerts eines bezüglich einer Eingangsgröße invertierten datenbasierten Funktionsmodells
EP1924931B1 (de) Verfahren zur speichereffizienten durchführung einer burrows-wheeler-rücktransformation
DE102018105847A1 (de) Datenwiederherstellung und Datenregeneration mittels Paritätscode

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee