ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/common/calfunc.c
(Generate patch)

Comparing ray/src/common/calfunc.c (file contents):
Revision 2.3 by greg, Mon May 18 14:15:49 1992 UTC vs.
Revision 2.5 by greg, Fri Oct 2 15:58:31 1992 UTC

# Line 20 | Line 20 | static char SCCSid[] = "$SunId$ LBL";
20  
21   #include  <errno.h>
22  
23 + #include  <math.h>
24 +
25   #include  "calcomp.h"
26  
27                                  /* bits in argument flag (better be right!) */
# Line 337 | Line 339 | char  *fname;
339  
340  
341   #ifndef  VARIABLE
342 + static VARDEF  *varlist = NULL;         /* our list of dummy variables */
343 +
344 +
345   VARDEF *
346   varinsert(vname)                /* dummy variable insert */
347   char  *vname;
# Line 347 | Line 352 | char  *vname;
352      vp->name = savestr(vname);
353      vp->nlinks = 1;
354      vp->def = NULL;
355 <    vp->lib = NULL;
356 <    vp->next = NULL;
355 >    vp->lib = liblookup(vname);
356 >    vp->next = varlist;
357 >    varlist = vp;
358      return(vp);
359   }
360  
# Line 356 | Line 362 | char  *vname;
362   varfree(vp)                     /* free dummy variable */
363   register VARDEF  *vp;
364   {
365 +    register VARDEF  *vp2;
366 +
367 +    if (vp == varlist)
368 +        varlist = vp->next;
369 +    else {
370 +        for (vp2 = varlist; vp2->next != vp; vp2 = vp2->next)
371 +                ;
372 +        vp2->next = vp->next;
373 +    }
374      freestr(vp->name);
375      efree((char *)vp);
376   }
377 +
378 +
379 + libupdate(nm)                   /* update library */
380 + char  *nm;
381 + {
382 +    register VARDEF  *vp;
383 +
384 +    for (vp = varlist; vp != NULL; vp = vp->next)
385 +        vp->lib = liblookup(vp->name);
386 + }
387   #endif
388  
389  
# Line 446 | Line 471 | l_select()             /* return argument #(A1+1) */
471   static double
472   l_rand()                /* random function between 0 and 1 */
473   {
449    extern double  floor();
474      double  x;
475  
476      x = argument(1);
# Line 460 | Line 484 | l_rand()               /* random function between 0 and 1 */
484   static double
485   l_floor()               /* return largest integer not greater than arg1 */
486   {
463    extern double  floor();
464
487      return(floor(argument(1)));
488   }
489  
# Line 469 | Line 491 | l_floor()              /* return largest integer not greater than
491   static double
492   l_ceil()                /* return smallest integer not less than arg1 */
493   {
472    extern double  ceil();
473
494      return(ceil(argument(1)));
495   }
496  
# Line 479 | Line 499 | l_ceil()               /* return smallest integer not less than arg
499   static double
500   l_sqrt()
501   {
482    extern double  sqrt();
483
502      return(sqrt(argument(1)));
503   }
504  
# Line 488 | Line 506 | l_sqrt()
506   static double
507   l_sin()
508   {
491    extern double  sin();
492
509      return(sin(argument(1)));
510   }
511  
# Line 497 | Line 513 | l_sin()
513   static double
514   l_cos()
515   {
500    extern double  cos();
501
516      return(cos(argument(1)));
517   }
518  
# Line 506 | Line 520 | l_cos()
520   static double
521   l_tan()
522   {
509    extern double  tan();
510
523      return(tan(argument(1)));
524   }
525  
# Line 515 | Line 527 | l_tan()
527   static double
528   l_asin()
529   {
518    extern double  asin();
519
530      return(asin(argument(1)));
531   }
532  
# Line 524 | Line 534 | l_asin()
534   static double
535   l_acos()
536   {
527    extern double  acos();
528
537      return(acos(argument(1)));
538   }
539  
# Line 533 | Line 541 | l_acos()
541   static double
542   l_atan()
543   {
536    extern double  atan();
537
544      return(atan(argument(1)));
545   }
546  
# Line 542 | Line 548 | l_atan()
548   static double
549   l_atan2()
550   {
545    extern double  atan2();
546
551      return(atan2(argument(1), argument(2)));
552   }
553  
# Line 551 | Line 555 | l_atan2()
555   static double
556   l_exp()
557   {
554    extern double  exp();
555
558      return(exp(argument(1)));
559   }
560  
# Line 560 | Line 562 | l_exp()
562   static double
563   l_log()
564   {
563    extern double  log();
564
565      return(log(argument(1)));
566   }
567  
# Line 569 | Line 569 | l_log()
569   static double
570   l_log10()
571   {
572    extern double  log10();
573
572      return(log10(argument(1)));
573   }
574   #endif

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines