discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Discuss-gnuradio] gr_frequency_modulator_fc.cc: unknown function tr


From: Krzysztof Kamieniecki
Subject: Re: [Discuss-gnuradio] gr_frequency_modulator_fc.cc: unknown function trunc()
Date: Mon, 7 Mar 2005 08:39:40 -0500
User-agent: Internet Messaging Program (IMP) 3.2.2

One more try

#define trunc(x) (((x) >= 0) ? floor(x) : ceil(x))

Quoting Krzysztof Kamieniecki <address@hidden>:
> I think the problem is that trunc is not part of the C++ standard. It is
> officially part of C99 so we could link in that library.
> 
> This is the macro I would suggest, since int only goes to ~2 billion :)
> Also I would prefer a function call because <insert standard disclaimer about
> x
> being evaluated twice>
> 
> #define trunc(x) ((x >= 0) ? floor(x) : ceil(x))
> 
> 
> Quoting Berndt Josef Wulf <address@hidden>:
> > G'day,
> > 
> > thanks for supplying the man page on trunc(). This function is indeed
> missing
> > 
> > in NetBSD - not sure why.
> > 
> > Anyhow, I think I've found a solution that works and may be acceptable for
> 
> > inclusion into the source tree for platforms that lack this functionality.
> 
> > Find patch below that checks for trunc() and if not found includes a simple
> 
> > macro definition.
> > 
> > --- configure.ac.orig   2005-03-07 22:10:37.000000000 +1030
> > +++ configure.ac        2005-03-07 22:26:59.000000000 +1030
> > @@ -102,6 +102,7 @@
> >  AC_CHECK_LIB(m, sincosf,[AC_DEFINE([HAVE_SINCOSF],[1],[Define to 1 if your
> 
> > system has `sincosf'.])])
> >  AC_CHECK_LIB(m, sinf, [AC_DEFINE([HAVE_SINF],[1],[Define to 1 if your
> system
> > 
> > has `sinf'.])])
> >  AC_CHECK_LIB(m, cosf, [AC_DEFINE([HAVE_COSF],[1],[Define to 1 if your
> system
> > 
> > has `cosf'.])])
> > +AC_CHECK_LIB(m, trunc, [AC_DEFINE([HAVE_TRUNC],[1],[Define to 1 if your 
> > systemhas no `trunc'.])])
> > 
> >  GR_CHECK_SHM_OPEN
> > 
> > --- src/lib/general/gr_frequency_modulator_fc.cc.orig   2005-03-07 
> > 22:17:55.000000000 +1030
> > +++ src/lib/general/gr_frequency_modulator_fc.cc        2005-03-07 
> > 22:27:25.000000000 +1030
> > @@ -29,6 +29,9 @@
> >  #include <gr_sincos.h>
> >  #include <math.h>
> > 
> > +#ifndef HAVE_TRUNC

> > +#define trunc(x) (double) ((int) (x + (x >= 0.0 ? -0.5 : 0.5)))
> > +#endif
> > 
> >  gr_frequency_modulator_fc_sptr gr_make_frequency_modulator_fc (double 
> > sensitivity)
> >  {
> > 
> > 
> > 73, Berndt
> > VK5ABN
> > 
> > On Mon, 7 Mar 2005 02:47 pm, kilian wrote:
> > > Hi,
> > >
> > > not having NetBSD available I can only show you what man trunc tells me
> > > under Linux:
> > > -----------------------------------------------------------
> > > NAME
> > >        trunc, truncf, truncl - round to integer, towards zero
> > >
> > > SYNOPSIS
> > >        #include <math.h>
> > >
> > >        double trunc(double x);
> > >        float truncf(float x);
> > >        long double truncl(long double x);
> > >
> > >        Compile with -std=c99; link with -lm.
> > >
> > > DESCRIPTION
> > >        These  functions  round x to the nearest integer not larger in
> > > absolute
> > >        value.
> > >
> > > RETURN VALUE
> > >        The rounded integer value.  If x is integral, infinite or NaN, x
> > > itself
> > >        is returned.
> > >
> > > ERRORS
> > >        None.
> > >
> > > CONFORMING TO
> > >        C99.
> > >
> > > SEE ALSO
> > >        ceil(3), floor(3), lrint(3), nearbyint(3), rint(3), round(3)
> > >
> > >
> --------------------------------------------------------------------------
> > >
> > > You may very well find truncf() under NetBSD although checking for it
> > > here:
> > >
> > >  http://netbsd.gw.com/cgi-bin/man-cgi?math+3+NetBSD-current
> > >
> > > didn't help me find it. However there is rint() but it rounds to the
> > > nearest integer. You could spin your own trunc() I suppose.
> > >
> > 
> > 
> > _______________________________________________
> > Discuss-gnuradio mailing list
> > address@hidden
> > http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
> > 
> 
> 
> 
> 
> _______________________________________________
> Discuss-gnuradio mailing list
> address@hidden
> http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
> 






reply via email to

[Prev in Thread] Current Thread [Next in Thread]