Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/libcfa/stdlib.c

    r8bc4ef8 r45161b4d  
    1010// Created On       : Thu Jan 28 17:10:29 2016
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Apr 28 07:54:21 2016
    13 // Update Count     : 166
     12// Last Modified On : Wed Apr 13 14:49:58 2016
     13// Update Count     : 155
    1414//
    1515
     
    2424#include <malloc.h>                                                                             // malloc_usable_size
    2525#include <math.h>                                                                               // fabsf, fabs, fabsl
    26 #include <complex.h>                                                                    // _Complex_I
     26#include <complex.h>                                                                    // _Complex_I, cabsf, cabs, cabsl
    2727} // extern "C"
    2828
     
    3434        //printf( "malloc3\n" );
    3535        T * ptr = (T *)malloc( sizeof(T) );
    36     return memset( ptr, (int)fill, sizeof(T) );
     36    return memset( ptr );
    3737} // malloc
    3838
     
    7878} // posix_memalign
    7979
     80forall( otype T ) T * memset( T * ptr, unsigned char fill ) { // use default value '\0' for fill
     81        //printf( "memset1\n" );
     82    return (T *)memset( ptr, (int)fill, malloc_usable_size( ptr ) );
     83} // memset
     84forall( otype T ) T * memset( T * ptr ) {                               // remove when default value available
     85        //printf( "memset2\n" );
     86    return (T *)memset( ptr, 0, malloc_usable_size( ptr ) );
     87} // memset
     88
    8089//---------------------------------------
    8190
    8291int ato( const char * ptr ) {
    8392        int i;
    84         if ( sscanf( ptr, "%d", &i ) == EOF ) {}
     93        if ( sscanf( ptr, "%d", &i ) == EOF ) {}                        // check return code
    8594        return i;
    8695}
    8796unsigned int ato( const char * ptr ) {
    8897        unsigned int ui;
    89         if ( sscanf( ptr, "%u", &ui ) == EOF ) {}
     98        if ( sscanf( ptr, "%u", &ui ) == EOF ) {}                       // check return code
    9099        return ui;
    91100}
    92101long int ato( const char * ptr ) {
    93102        long int li;
    94         if ( sscanf( ptr, "%ld", &li ) == EOF ) {}
     103        if ( sscanf( ptr, "%ld", &li ) == EOF ) {}                      // check return code
    95104        return li;
    96105}
    97106unsigned long int ato( const char * ptr ) {
    98107        unsigned long int uli;
    99         if ( sscanf( ptr, "%lu", &uli ) == EOF ) {}
     108        if ( sscanf( ptr, "%lu", &uli ) == EOF ) {}                     // check return code
    100109        return uli;
    101110}
    102111long long int ato( const char * ptr ) {
    103112        long long int lli;
    104         if ( sscanf( ptr, "%lld", &lli ) == EOF ) {}
     113        if ( sscanf( ptr, "%lld", &lli ) == EOF ) {}            // check return code
    105114        return lli;
    106115}
    107116unsigned long long int ato( const char * ptr ) {
    108117        unsigned long long int ulli;
    109         if ( sscanf( ptr, "%llu", &ulli ) == EOF ) {}
     118        if ( sscanf( ptr, "%llu", &ulli ) == EOF ) {}           // check return code
    110119        return ulli;
    111120}
     
    113122float ato( const char * ptr ) {
    114123        float f;
    115         if ( sscanf( ptr, "%f", &f ) == EOF ) {}
     124        if ( sscanf( ptr, "%f", &f ) == EOF ) {}                        // check return code
    116125        return f;
    117126}
    118127double ato( const char * ptr ) {
    119128        double d;
    120         if ( sscanf( ptr, "%lf", &d ) == EOF ) {}
     129        if ( sscanf( ptr, "%lf", &d ) == EOF ) {}                       // check return code
    121130        return d;
    122131}
    123132long double ato( const char * ptr ) {
    124133        long double ld;
    125         if ( sscanf( ptr, "%Lf", &ld ) == EOF ) {}
     134        if ( sscanf( ptr, "%Lf", &ld ) == EOF ) {}                      // check return code
    126135        return ld;
    127136}
     
    129138float _Complex ato( const char * ptr ) {
    130139        float re, im;
    131         if ( sscanf( ptr, "%g%gi", &re, &im ) == EOF ) {}
     140        if ( sscanf( ptr, "%g%gi", &re, &im ) == EOF ) {}       // check return code
    132141        return re + im * _Complex_I;
    133142}
    134143double _Complex ato( const char * ptr ) {
    135144        double re, im;
    136         if ( sscanf( ptr, "%lf%lfi", &re, &im ) == EOF ) {}
     145        if ( sscanf( ptr, "%lf%lfi", &re, &im ) == EOF ) {} // check return code
    137146        return re + im * _Complex_I;
    138147}
    139148long double _Complex ato( const char * ptr ) {
    140149        long double re, im;
    141         if ( sscanf( ptr, "%Lf%Lfi", &re, &im ) == EOF ) {}
     150        if ( sscanf( ptr, "%Lf%Lfi", &re, &im ) == EOF ) {}     // check return code
    142151        return re + im * _Complex_I;
    143152}       
     
    213222//---------------------------------------
    214223
    215 // forall( otype T | { T ?/?( T, T ); T ?%?( T, T ); } )
    216 // [ T, T ] div( T t1, T t2 ) { return [ t1 / t2, t1 % t2 ]; }
     224forall( otype T | { T ?/?( T, T ); T ?%?( T, T ); } )
     225[ T, T ] div( T t1, T t2 ) { /* return [ t1 / t2, t1 % t2 ]; */ }
    217226
    218227//---------------------------------------
     
    221230long int abs( long int v ) { return labs( v ); }
    222231long long int abs( long long int v ) { return llabs( v ); }
    223 float abs( float x ) { return fabsf( x ); }
    224 double abs( double x ) { return fabs( x ); }
    225 long double abs( long double x ) { return fabsl( x ); }
    226 float abs( float _Complex x ) { return cabsf( x ); }
    227 double abs( double _Complex x ) { return cabs( x ); }
    228 long double abs( long double _Complex x ) { return cabsl( x ); }
     232float abs( float v ) { return fabsf( v ); }
     233double abs( double v ) { return fabs( v ); }
     234long double abs( long double v ) { return fabsl( v ); }
     235float _Complex abs( float _Complex v ) { return cabsf( v ); }
     236double _Complex abs( double _Complex v ) { return cabs( v ); }
     237long double _Complex abs( long double _Complex v ) { return cabsl( v ); }
     238
     239//---------------------------------------
     240
     241float floor( float v ) { return floorf( v ); }
     242long double floor( long double v ) { return floorl( v ); }
     243
     244float ceil( float v ) { return ceilf( v ); }
     245long double ceil( long double v ) { return ceill( v ); }
    229246
    230247//---------------------------------------
Note: See TracChangeset for help on using the changeset viewer.