From owner-FreeBSD-users-jp@jp.freebsd.org  Thu Feb 15 20:31:29 1996
Received: by mail.jp.freebsd.org (8.7.3+2.6Wbeta5/8.7.3) id UAA18292
	Thu, 15 Feb 1996 20:31:29 +0900 (JST)
Received: by mail.jp.freebsd.org (8.7.3+2.6Wbeta5/8.7.3) with ESMTP id UAA18287
	for <FreeBSD-users-jp@jp.freebsd.org>; Thu, 15 Feb 1996 20:31:27 +0900 (JST)
Received: from adam.dsp.cl.nec.co.jp by research.gate.nec.co.jp (8.7.3+2.6Wbeta5/950912) with ESMTP id UAA13317; Thu, 15 Feb 1996 20:31:21 +0900 (JST)
Received: from porco.dsp.cl.nec.co.jp by adam.dsp.cl.nec.co.jp (8.7.3+2.6Wbeta5/CL-941126) with SMTP id UAA04489; Thu, 15 Feb 1996 20:31:20 +0900 (JST)
Message-Id: <199602151131.UAA04489@adam.dsp.cl.nec.co.jp>
To: FreeBSD-users-jp@jp.freebsd.org
In-reply-to: Your message of Thu, 15 Feb 1996 18:29:26 JST.
             <199602150929.SAA01386@ns1.noc.titech.ac.jp> 
Date: Thu, 15 Feb 1996 20:31:14 +0900
From: Akihiro Hirano <hirano@dsp.cl.nec.co.jp>
Reply-To: FreeBSD-users-jp@jp.freebsd.org
X-Distribute: distribute [version 2.1 (Alpha) patchlevel=19]
X-Sequence: FreeBSD-users-jp 350
Subject: [FreeBSD-users-jp 350] Re: Pentium 
Errors-To: owner-FreeBSD-users-jp@jp.freebsd.org
Sender: owner-FreeBSD-users-jp@jp.freebsd.org

$BJ?Ln(B@NEC$B$G$9!#(B

> > $B!t!t(B pentium100M$B$K!$:#$O$1$7$FAa$$$H$O8@$($J$$(BSCSI$B%G%#%9%/$r7R$2$F(B
> > $B!t!t(B $B$k$N$G$9$,!$Aa$$Aa$$!%(B
> 
> $B$o$?$7$c(B $B$$$^$@$K(B DX2-66$B$h$jAa$$%^%7%s$r?($C$?$3$H$,$J$$$N$G$9$,!"(B
> $B$=$s$J$K0c$&$s$G$9$+!)(B

$B!!(B486DX2/50$B$H(BPentium75$B$G$b!"%+!<%M%k$N%3%s%Q%$%k$J$s$+$G!"B.(B
$B$$$J$!$H;W$$$^$9$M!#(B

$B!!$3$l$@$1$8$c$J$s$J$N$G!"6qBNE*$J?t;z$r!#G\@:EYIbF0>.?tE@$G(B
$B7W;;5!%7%_%e%l!<%7%g%s$r$7$?;~$N>CHq;~4V$G$9!#(Btime$B$GB,$C$?$N(B
$B$G!"$$$$$+$2$s$G$9$1$I!#(B

Host              CPU(clock)      CPU time
============================================================
SX-3/24R          Vector(400)        0.8
EWS4800/360EX     R4400SC(100)      11.4
DEC alpha300X     21064(175)        15.8
PC9821-An         Pentium(90)       17.0     Panix V. 3.0
SPARCStation20    SuperSPARC(60)    17.2     Solaris 2
Convex C-220      Vector            20.2
SPARCStation10    SuperSPARC(40)    21.2
SPARCStation2     SPARC             85.6
Dell 466/ME       i486DX2(66)      108.2     FreeBSD 2.0R
EWS4800/15        68040(25)        246.0
EWS4800/60        68030(33)       1785.7
PC-9081RA         i386DX(20)      4850.0     386BSD(98)
EWS4800/10        68020(16)       5213.7
============================================================

$B!!7W;;$NCf?H$O!"$[$H$s$I@QOB1i;;$G$9!#$3$l$@$18+$k$H!"(BP5/90
$B$O(BSS20$B$J$_!"(BDX4/100$B$G(BSS2$B$J$_$N%9%T!<%I$J$N$G$9$M!#(B

$B!!%=!<%9$r!":G8e$KIU$1$F$*$-$^$9!#5$$,8~$$$?$i!"%^%7%s(B, CPU, 
$B%/%m%C%/(B, OS, $B%3%s%Q%$%i$H%*%W%7%g%s(B, time$B%3%^%s%I$N=PNO$"$?(B
$B$j$r65$($F2<$5$$!#(B P5/166$B$H$+$@$H!"(B R4400SC(100)$B$d(BAlpha AXP
21064(175)$B$"$?$j$rH4$/$s$8$c$J$$$+$H!"4|BT$7$F$$$k$N$G$9$,!D(B
$B$"$H!"C/$+(BAlpha AXP 21164$B%^%7%s(B(Dragon AXP$B$H$+!D(B)$B;}$C$F$^$;(B
$B$s$+!)(BSPEC fp 500$B$H$+$$$&BeJ*!D(B

> Pentium$B$N(B 100$B$/$i$$$N$,(B $B$b$&Ej$2Gd$j$K$J$i$J$$$+$J(B
> $B$H;W$C$F$k$s$G$9$,!#$"$^$$$+$J!#(B

$B!!(B75$B$/$i$$$@$C$?$i!"40A4$KEj$2Gd$j$K$J$C$F$$$k$h$&$J!#(B
----
$BF|K\EE5$(B($B3t(B)$B>pJs%a%G%#%"8&5f=j!!J?Ln989((B
E-mail : hirano@dsp.CL.nec.co.jp
========================================================================
#include <stdio.h>

#define TAPNUM 512
#define REPEAT 100000
#define DELAYSIZE 100512
#define RAND_MEAN 2147483647.0
#ifndef DATATYPE
#define DATATYPE double
#endif

DATATYPE fir(delay, coef)
DATATYPE delay[], coef[];
{
  int i;
  DATATYPE sum;

  for (sum = 0.0, i = 0;i < TAPNUM;sum += delay[i] * coef[i], i++);
  return sum;
}

DATATYPE power(delay)
DATATYPE delay[];
{
  DATATYPE sum;
  int i;

  for(sum = 0.0, i = 0;i < TAPNUM;sum += delay[i] * delay[i], i++);
  return sum;
}

void adapt(delay, coef, delta)
DATATYPE delay[], coef[];
DATATYPE delta;
{
  int i;

  for(i = 0;i < TAPNUM;coef[i] += delay[i] * delta, i++);
}

DATATYPE delay[DELAYSIZE], coef0[TAPNUM], coef1[TAPNUM];

main()
{
  DATATYPE sum0, sum1, pow, delta;
  int i;

  for(sum0 = 1.0, i = 0;i < TAPNUM;i++) {
    coef0[i] = sum0;
    coef1[i] = 0.0;
    sum0 *= 0.8;
  }
  for(i = 0;i < DELAYSIZE;i++) {
    delay[i] = (rand() - RAND_MEAN)/RAND_MEAN;
  }

  for(i = 0;i < REPEAT;i++) {
    sum0 = fir(&(delay[i]), coef0);
    sum1 = fir(&(delay[i]), coef1);
    pow = power(&(delay[i]));
#ifdef DEBUG
    if ((i % 1000) == 0) {
      printf("%lf %lf %lf\n", sum0, sum0 - sum1, pow);
    }
#endif
    delta = (sum0 - sum1) * 0.8 / pow;
    adapt(&(delay[i]), coef1, delta);
  }
}
