Integer Math Lib

Gast #363911
Lesenswert?

Mich wundert auch, dass es für Mikrocontroller keine
Festkomma-Implementierungen gibt. Ein generisches Zahlenformat wie 8.8
oder 16.16 würde für dei meisten Anwendungen mit ungeraden Zahlen
reichen und wäre wesentlich performanter als floating-point (zumindest
auf einem 8-bitter).

Sicherlich kann ich das alles auch händisch in C-Code nachbilden doch
in punkto Lesbarkeit bleibt vom Code nichtmehr viel übrig.
Gast #363915
Lesenswert?

ich meine von Microchip gibt es PIC-Assembler-Applikatioen zu
verschiedenen mathematischen Funktionen. Gibts von Atmel für AVR
vergleichbares ? Ich meine, mindestens größere Multiplikations- und
Divisionsroutinen gesehen zu haben.
Oder soll das ganze in C stattfinden ?
Gast #363916
Lesenswert?

Vier mathematische Appnotes hab ich gefunden:

AVR200: Multiply and Divide Routines   (19 pages, revision B, updated
10/98)
This Application Note lists subroutines for multiplication and division
of 8 and 16-bit signed and unsigned numbers.

AVR201: Using the AVR Hardware Multiplier   (11 pages, revision C,
updated 6/02)
Examples of using the multiplier for 8-bit arithmetic.

AVR202: 16-Bit Arithmetics   (3 pages, revision B, updated 5/02)
This Application Note lists program examples for arithmetic operation
on 16-bit values.

AVR204: BCD Arithmetics (14 pages, revision B, updated 01/03)
This Application Note lists routines for BCD arithmetics.

aber Wurzel oder Sinus ist nicht darunter
Gast #363917
Lesenswert?

Microchip listet unter Appnotes/Algorithm/math folgendes:
Appnotes      Description      Date      Launch
TB043   KEELOQ® CRC Verification Routines   11/8/04
AN670   Floating Point to ASCII Conversion   9/11/01
AN752   AN752 CRC Algorithm for MCRF45X Read/Write Device   3/15/01
TB040   Fast Integer Square Root   10/16/00
AN730   CRC Generating and Checking   5/22/00
TB028   Technique to Calculate Day of Week   8/23/99
TB026   Calculating Program Memory Checksums Using a PIC16F87X   11/6/98

AN526   PIC16C5x/PIC16Cxx Utility Math Routines   8/26/97
AN616   Digital Signal Processing with the PIC16C74   8/26/97
AN542   Implementation of Fast Fourier Transforms   8/26/97
AN660   Floating Point Routines   8/26/97
AN540   Implementing IIR Digital Filters   8/26/97
AN575   IEEE 754 Compliant Floating Point Routines   8/26/97
AN643   Adaptive Differential Pulse Code Modulation using the PIC16/17
  8/26/97
AN544   Math Utility Routines   8/26/97
AN617   Fixed Point Routines   8/26/97
Gast #363918
Lesenswert?

Ich habe mir vor einigen Jahren ein Buch zum Thema mathematische
Algorithmen gekauft, anscheinend gibt es eine Neuauflage:
Computer Arithmetic Algorithms
von Israel Koren
Sprache: Englisch
Gebundene Ausgabe - 296 Seiten - A K Peters Ltd
Erscheinungsdatum: 2001
Auflage: 2nd
ISBN: 1568811608
die erste auflage war von 1993.
Nicht speziell für eine bestimmte Programmiersprache / CPU, nur die
allgemeinen Lösungswege.
"Synopsis" bei Amazon:
This text explains the fundamental principles of algorithms available
for performing arithmetic operations on digital computers. These
include basic arithmetic operations like addition, subtraction,
multiplication, and division in fixed-point and floating-point number
systems as well as more complex operations such as square root
extraction and evaluation of exponential, logarithmic, and
trigonometric functions. The algorithms described are independent of
the particular technology employed for their implementation. Numerical
examples illustrate the working of the algorithms presented and explain
the concepts behind the algorithms without relying on gate diagrams.
This new edition includes sections on floating-point adders,
floating-point exceptions, general carry-look-ahead adders, prefix
adders, Ling adders, and fused multiply-add units. New algorithms and
implementations have been added to almost all chapters. An on-line
JavaScript-based simulator for many of the algorithms contained in the
book is available at: www.ecs.umass.edu/ece/koren/arith/simulator.

Vielleicht kann jemand noch andere Bücher zum Thema empfehlen. Ich habe
allerdings aus dem "Koren" bisher noch nichts verwendet.
Gast #363919
Lesenswert?

Vielleicht in der Computerbibel "The Art Of Computer Programming" von
Donald Knuth ? Es scheint ein Standardwerk zu sein, mindestens 4 Bände,
teilweise soll auch eine deutsche Version existieren. Ich habe noch
nicht drin geblättert, bei Amazon kann man das Inhaltsverzeichnis und
das Indexregister besichtigen, sowie ein kurzes Kapitel über
Zufallszahlen.

Leider ist der Suchbegriff "Algorithmen" in der Computerliteratur
mehr auf Datenbank-Suchstrategien und ähnliches bezogen, weniger auf
elementare Mathematikfunktionen.
Angehängte Dateien:
#363920
Lesenswert?

Kapitel 4 wurde ins deutsche übersetzt: "Arithmetik" ISBN
3-540-66745-8. Das ist übrigens das einzigste Kapitel das wirklich
interessant ist, meiner Meinung nach. Ansonsten ist das Buch so nicht
zu bekommen, mal auf dem Trödler schauen.

Ich meine interesanter wäre eine kleine Lib die die Fixpoints auf dem
AVR benutzen -> FMUL etc.pp.

Gruß Hagen
Gast #363921
Lesenswert?

Näherungsformeln sind auch selten zu finden, ich weiß nicht mehr, wo ich
diese Näherung an den "Pythagoras" ( Wurzel aus (x^2 +y^2)) gelesen
hatte. Der Kreis wird durch sein eingeschriebenes Achteck angenähert.
Ich habe damit ein Wettersatelliten-Signal auf dem AVR demoduliert. Das
Wetterbild ist auf einen 2400Hz Träger amplitudenmoduliert. Mit 9600
Abtastungen pro Sekunde sind die einzelnen Abtastwerte immer um 90 Grad
auf der 2400Hz-Schwingung versetzt, sodaß der "Pythagoras" die
Amplitudeninformation liefert.
Angehängte Dateien:
#363922
Lesenswert?

Hi,

Iteration für ne Quadraturzel geht auch gut mit(xi+1)=(x(i)+a/x(i))/2
wenn man billig dividieren kann. Beträge von Vektoren ( Wurzel aus (x^2
+y^2)) gehen in der Regel besser, wenn man das nicht mit
quadrieren/wurzelziehen macht, sondern den Vektor mit einem
Cordic-Verfahren auf die x- oder y-Achse dreht, dann hat man den Betrag
direkt. Das geht auch auf nem FPGA ohne multiplizieren.

Cheers
Detlef

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren