I can't find how to use atanh (and I think other related function in my distribution). atan, tan, sin, cos are there, instead. Portage 2.1_pre4-r1 (default-linux/amd64/2006.0, gcc-4.0.2, glibc-2.3.6-r2, 2.6.15-archck3 x86_64) ================================================================= System uname: 2.6.15-archck3 x86_64 AMD Athlon(tm) 64 Processor 3500+ Gentoo Base System version 1.12.0_pre15 ccache version 2.4 [disabled] dev-lang/python: 2.4.2-r1 sys-apps/sandbox: 1.2.17 sys-devel/autoconf: 2.13, 2.59-r7 sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r1 sys-devel/binutils: 2.16.1-r1 sys-devel/libtool: 1.5.22 virtual/os-headers: 2.6.11-r3 ACCEPT_KEYWORDS="amd64 ~amd64" AUTOCLEAN="yes" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-O2 -march=athlon64 -pipe" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3.4/env /usr/kde/3.4/share/config /usr/kde/3.4/shutdown /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/kde/3/share/config /usr/lib64/mozilla/defaults/pref /usr/share/X11/xkb /usr/share/config /var/bind /var/qmail/control /var/service" CONFIG_PROTECT_MASK="/etc/gconf /etc/splash /etc/terminfo /etc/texmf/web2c /etc/env.d" CXXFLAGS="-O2 -march=athlon64 -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="autoconfig candy distlocks sandbox sfperms strict" GENTOO_MIRRORS="http://ftp.unina.it/pub/linux/distributions/gentoo ftp://ftp.unina.it/pub/linux/distributions/gentoo http://mirror.switch.ch/ftp/mirror/gentoo/ ftp://mirror.switch.ch/mirror/gentoo/ http://ibiblio.org/pub/Linux/MIRRORS.html " LANG="it_IT@euro" LC_ALL="it_IT" LINGUAS="it" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage /home/sam" SYNC="rsync://rsync.de.gentoo.org/gentoo-portage" USE="amd64 3dnow 3dnowext X a52 aac aalib acl acpi alsa apache2 arts audiofile avi bash-completion bcmath berkdb bindist bitmap-fonts bluetooth bonobo browserplugin bzip2 bzlib caps cdparanoia cdr cpudetection crypt css ctype cups curl dbm dbus dbx dga dri dts dv dvb dvd dvdr dvdread eds emboss encode exif expat fame fbcon ffmpeg fftw flac flash foomaticdb fortran freetype ftp gb gd gdbm gif gimpprint glut gmp gphoto2 gpm gtk gtk2 gtkhtml guile hal howl iconv idn ieee1394 imagemagick imap imlib innodb ipv6 jasper java javascript jpeg jpeg2k kde kdeenablefinal kernel_linux lcms ldap lesstif libcaca libedit libgda libwww live lm_sensors logitech logitech-mouse lzo lzw lzw-tiff mad mailwrapper mbox mhash mikmod mime mmap mmx mmxext mng mozilla mp3 mpeg msn musepack musicbrainz mysql mysqli ncurses nls nptl nsplugin ogg oggvorbis openal opengl pcmcia pcre pdf pdflib perl php plotutils plugin png posix postgres ppds python qt quicktime readline real rtc samba sasl scanner sdl session sharedext sharedmem simplexml slang sndfile snmp soap sockets sox spell spl sqlite sse sse2 ssl sumlink svg sysvipc szip tcltk tcpd tetex theora threads tidy tiff tokenizer truetype truetype-fonts type1-fonts udev unicode usb userlocales v4l v4l2 vcd videos visualization vorbis wifi win32codecs wmf wxwindows xanim xcomposite xface xine xinerama xml xml2 xmlrpc xosd xpm xscreensaver xsl xv xvmc zeroconf zlib elibc_glibc linguas_it userland_GNU video_cards_ati" Unset: ASFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, LDFLAGS, MAKEOPTS
It's there, just don't forget to link with -l m, as documented in the manpage. The fact that sin/cos/... sometimes work without it is because gcc handles them internally, so that the glibc versions aren't needed (but even then, you really still should be linking with -l m). If that doesn't work for you, it'd probably help if you provide a short test program, what you tried to compile it, and the error messages.
Created attachment 79015 [details] A testcase If I use "using namespace std;" it compiles, else here are the error message from "g++ -o test test.cpp -lm": test.cpp: In function `int main(int, char**)': test.cpp:6: error: `atanh' is not a member of `std' Where I'm wrong?
Sorry, misunderstood the problem. glibc is the C library. libstdc++ is the C++ library, even if it uses the C library to do some of its work. So this is a libstdc++ issue, not a glibc one. Anyway, then the issue is much simpler: std::atanh doesn't exist because it is not a standard C++ function. atanh (::atanh) is a standard C function (and a POSIX function), and because the libstdc++ headers use the glibc headers, it happens to be made available even though it probably shouldn't be.
Wow! Thank you. That worked. Sorry for this mistake, and for making you loosing your time...