head 1.2; access; symbols pkgsrc-2013Q2:1.2.0.54 pkgsrc-2013Q2-base:1.2 pkgsrc-2012Q4:1.2.0.52 pkgsrc-2012Q4-base:1.2 pkgsrc-2011Q4:1.2.0.50 pkgsrc-2011Q4-base:1.2 pkgsrc-2011Q2:1.2.0.48 pkgsrc-2011Q2-base:1.2 pkgsrc-2009Q4:1.2.0.46 pkgsrc-2009Q4-base:1.2 pkgsrc-2008Q4:1.2.0.44 pkgsrc-2008Q4-base:1.2 pkgsrc-2008Q3:1.2.0.42 pkgsrc-2008Q3-base:1.2 cube-native-xorg:1.2.0.40 cube-native-xorg-base:1.2 pkgsrc-2008Q2:1.2.0.38 pkgsrc-2008Q2-base:1.2 pkgsrc-2008Q1:1.2.0.36 pkgsrc-2008Q1-base:1.2 pkgsrc-2007Q4:1.2.0.34 pkgsrc-2007Q4-base:1.2 pkgsrc-2007Q3:1.2.0.32 pkgsrc-2007Q3-base:1.2 pkgsrc-2007Q2:1.2.0.30 pkgsrc-2007Q2-base:1.2 pkgsrc-2007Q1:1.2.0.28 pkgsrc-2007Q1-base:1.2 pkgsrc-2006Q4:1.2.0.26 pkgsrc-2006Q4-base:1.2 pkgsrc-2006Q3:1.2.0.24 pkgsrc-2006Q3-base:1.2 pkgsrc-2006Q2:1.2.0.22 pkgsrc-2006Q2-base:1.2 pkgsrc-2006Q1:1.2.0.20 pkgsrc-2006Q1-base:1.2 pkgsrc-2005Q4:1.2.0.18 pkgsrc-2005Q4-base:1.2 pkgsrc-2005Q3:1.2.0.16 pkgsrc-2005Q3-base:1.2 pkgsrc-2005Q2:1.2.0.14 pkgsrc-2005Q2-base:1.2 pkgsrc-2005Q1:1.2.0.12 pkgsrc-2005Q1-base:1.2 pkgsrc-2004Q4:1.2.0.10 pkgsrc-2004Q4-base:1.2 pkgsrc-2004Q3:1.2.0.8 pkgsrc-2004Q3-base:1.2 pkgsrc-2004Q2:1.2.0.6 pkgsrc-2004Q2-base:1.2 pkgsrc-2004Q1:1.2.0.4 pkgsrc-2004Q1-base:1.2 pkgsrc-2003Q4:1.2.0.2 pkgsrc-2003Q4-base:1.2 buildlink2:1.1.0.2 buildlink2-base:1.2 netbsd-1-5-PATCH003:1.1; locks; strict; comment @# @; 1.2 date 2002.05.12.23.21.56; author dmcmahill; state dead; branches; next 1.1; 1.1 date 2002.04.02.02.01.24; author dmcmahill; state Exp; branches 1.1.2.1; next ; 1.1.2.1 date 2002.06.23.18.52.41; author jlam; state dead; branches; next ; desc @@ 1.2 log @update to grpn-1.1.2nb1 adds several constants found in science and engineering: - 'k' Boltzmanns constnat - 'q' Electron charge - 'e0' Free space permitivity - 'mu0'Free space permeability - 'c' Free space speed of light. @ text @$NetBSD: patch-ae,v 1.1 2002/04/02 02:01:24 dmcmahill Exp $ --- number.c.orig Mon May 31 19:44:23 1999 +++ number.c @@@@ -278,6 +278,76 @@@@ return c; } +Number * dbNumber(Number *a,double sf){ + Real *r1,*rtmp1,*rtmp2; + Cmplx *c1; + Number *mul = newNumber(); + Number *c = newNumber(); + + if(a == NULL){ fprintf(stderr, "dbNumber(NULL)\n"); exit(0); } + + + switch(a->type){ + case REAL: + if(-1 == cmpReal(a->data, realZero)){ + /* log(<0) is complex ! */ + c1 = setCmplxReal(newCmplx(), a->data, realZero); + c->type = COMPLEX; + c->data = logCmplx(c1); + rtmp1=newReal(); + rtmp2=newReal(); + setRealDouble(rtmp1, sf); + setRealDouble(rtmp2, 0.0); + mul->type = COMPLEX; + mul->data = newCmplx(); + setCmplxReal(mul->data,rtmp1,rtmp2); + freeReal(rtmp1); + freeReal(rtmp2); + freeCmplx(c1); + } else { + c->type = REAL; + mul->type = REAL; + mul->data = newReal(); + setRealDouble(mul->data, sf); + c->data = logReal(a->data); + } + break; + case COMPLEX: + c->type = COMPLEX; + c->data = logCmplx(a->data); + rtmp1=newReal(); + rtmp2=newReal(); + setRealDouble(rtmp1, sf); + setRealDouble(rtmp2, 0.0); + mul->type = COMPLEX; + mul->data = newCmplx(); + setCmplxReal(mul->data,rtmp1,rtmp2); + freeReal(rtmp1); + freeReal(rtmp2); + break; + case MATRIX: + c->type = MATRIX; + invalidTyprError("db"); + c->data = NULL; + break; + default: + fprintf(stderr, "Error: Unknown number type\n"); + exit(0); + } + + + if(c->data == NULL){ + free(c); + c = NULL; + } + else { + c = mulNumber(c,mul); + } + + free(mul); + return c; +} + Number * expNumber(Number *a){ Number *c = newNumber(); @ 1.1 log @Add db10 and db20 functions to compute decibels. While here add a bunch of missing headers (string.h, stdlib.h) for alpha. Bump rev to 1.1.0nb1 @ text @d1 1 a1 1 $NetBSD$ @ 1.1.2.1 log @Merge from pkgsrc-current to buildlink2 branch. @ text @d1 1 a1 1 $NetBSD: patch-ae,v 1.1 2002/04/02 02:01:24 dmcmahill Exp $ @