Anzeige:
Ergebnis 1 bis 10 von 10

Thema: gcc 4.3.2 C++0x neue mathematische funktionen

  1. #1
    Registrierter Benutzer Avatar von Ahahn
    Registriert seit
    30.08.2004
    Ort
    Berlin
    Beiträge
    7

    gcc 4.3.2 C++0x neue mathematische funktionen

    Hallo.
    Ich versuche grad mit einem neuen gcc (4.3.2)
    auf die neuen fmathematischen funktionen im kommenden standard c++0x zuzugreifen: (link in französisch)
    http://fr.wikipedia.org/wiki/C++0x#F...sp.C3.A9ciales

    der gcc ab 4.3 soll diese über das flag -std=c++0x schon unterstützen.
    wenn ich nun allerdings folgendes programm
    Code:
    #include <iostream>
    #include <math.h>
    
    using namespace std;
    
    int main(int argc, char *argv[])
    {
       cout <<beta(2,2)<<assoc_laguerre(1,1,1)<<endl;
       return 0;
    }
    versuche zu kompilieren bekomme ich folgende fehlermeldung ausgespuckt:
    Code:
     g++ -Wall -lm  -std=gnu++0x main.cpp
    main.cpp: In function ‘int main(int, char**)’:
    main.cpp:8: error: ‘beta’ was not declared in this scope
    main.cpp:8: error: ‘assoc_laguerre’ was not declared in this scope
    scheinbar hab ich irgendetwas vergessen einzubinden, zu linken oÄ. Hab aber leider noch nichts gefunden was mir weiterhilft. "Alte" Funktionen wie sin(x) etc funktionieren problemlos. Meine gcc Version laut g++ -v ist "gcc version 4.3.2 (Debian 4.3.2-1)"

    Danke schonmal für eventuelle Antworten.
    MfG
    wer kämpft kann verlieren, wer nicht kämpft hat schon verloren.
    Meine Homepage *** debian-packages&co

  2. #2
    Registrierter Benutzer
    Registriert seit
    24.06.2004
    Beiträge
    101
    Ohne diese Funktionen zu kennen, könnte es sein, das diese Methoden nicht im namespace std sondern einem andern liegen? Wenn ja, müsstest du sie explizit mit dem voll-qualifizierenden Namensraum angeben. Nur als Vermutung.

  3. #3
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    math.h ist ein C Header, d.h. es fehlt der Header für die von dir gewünschten C++ Features.

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  4. #4
    Registrierter Benutzer
    Registriert seit
    23.05.2004
    Beiträge
    592
    Beta und Assoc_laguerre sind im TR1 zu finden und auch vom Konzept her im Header <math.h>. Siehe TR1, verlinkt hier: http://www.aristeia.com/EC3E/TR1_info.html
    Allerdings glaube ich nicht, dass diese Funktionen es in C++0x schaffen werden.

    Wenn du die TR1 Implementierung des GCC verwenden willst, solltest du evtl. mal in dessen Doku schauen:
    http://gcc.gnu.org/onlinedocs/libstd...1pt01ch01.html

    Scott Meyers listet im Dokument oben auch noch andere Alternativen.

  5. #5
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Zitat Zitat von locus vivendi Beitrag anzeigen
    Beta und Assoc_laguerre sind im TR1 zu finden und auch vom Konzept her im Header <math.h>. Siehe TR1, verlinkt hier: http://www.aristeia.com/EC3E/TR1_info.html
    Interessant.
    Laut diesem Dokument sind das Funktionen aus dem C++ Header <cmath>

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  6. #6
    Registrierter Benutzer Avatar von jeebee
    Registriert seit
    01.01.2005
    Ort
    Bern || Zürich
    Beiträge
    540
    Respektive im Header <tr1/cmath>
    my very own 128 bit integer
    C4 D3 B8 A8 9E A0 C6 EC 7D EC A8 15 28 D1 92 58
    more information

  7. #7
    Registrierter Benutzer
    Registriert seit
    23.05.2004
    Beiträge
    592
    Beta und Assoc_laguerre sind im TR1 zu finden und auch vom Konzept her im Header <math.h>. Siehe TR1, verlinkt hier: http://www.aristeia.com/EC3E/TR1_info.html
    Interessant.
    Laut diesem Dokument sind das Funktionen aus dem C++ Header <cmath>
    Ja. Und der nächste Abschnitt dort, also 5.2.2 sagt, dass diese Funktionen per Using-Deklarationen mit <math.h> nutzbar gemacht werden (dann im globalen Namespace).

    Mit "vom Konzept her" meinte ich, dass TR1 diese Funktionen als Zusatz zu den bisherigen <cmath> und <math.h> Headern spezifiziert. Allerdings ist auch richtig, dass TR1 Implementierer warnt, nicht einfach so, ohne Aufforderung des Benutzers diese Zusätze sichtbar zu machen. Jebees Kommentar geht in diese Richtung.

  8. #8
    Registrierter Benutzer
    Registriert seit
    24.06.2004
    Beiträge
    101
    Also so kompiliert es bei mir:

    Code:
    #include <iostream>
    #include <tr1/cmath>
    
    using namespace std;
    
    int main(int argc, char *argv[])
    {
      cout << std::tr1::beta(2,2)<< std::tr1::assoc_laguerre(1,1,1)<<endl;
      return 0;
    }
    Grüße

  9. #9
    Registrierter Benutzer Avatar von Ahahn
    Registriert seit
    30.08.2004
    Ort
    Berlin
    Beiträge
    7
    vielen dank der zahlreichen antworten und interessanten links.
    jetzt kann ich auch auf die funktionen zugreifen.

    hat irgendwer von euch praktische erfahrungen mit bibliotheken für numerische integration? bzw eine der folgenden vllt schon einmal benutzt und kann mir zu einer zu /abraten? momentanüberlege ich zwischen der gnu scientific libary http://www.gnu.org/software/gsl/
    und ginac http://www.ginac.de/ hin und her und kann mich nicht so ganz entscheiden.

    mfg
    wer kämpft kann verlieren, wer nicht kämpft hat schon verloren.
    Meine Homepage *** debian-packages&co

  10. #10
    Registrierter Benutzer Avatar von peschmae
    Registriert seit
    14.03.2002
    Ort
    Schweizland
    Beiträge
    4.549
    GSL hab ich schon benutzt und war eigentlich zufrieden damit - wobei ich das auch nur als Solver für eine Diffgleichung brauchte, damals.

    Geht halt nur wenn deine Software auch GPL ist...

    MfG Peschmä
    The greatest trick the Devil ever pulled was convincing the world he didn't exist. -- The Usual Suspects (1995)
    Hey, I feel their pain. It's irritating as hell when people act like they have rights. The great old one (2006)

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •