IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 3029


Ignore:
Timestamp:
Jan 18, 2005, 8:53:03 AM (22 years ago)
Author:
eugene
Message:

added lgamma, atan2

Location:
trunk/Ohana/src/opihi/lib.shell
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Ohana/src/opihi/lib.shell/convert_to_RPN.c

    r2598 r3029  
    4848    if (!strcmp (argv[i], "dacos")) { type = 7; goto gotit; }
    4949    if (!strcmp (argv[i], "datan")) { type = 7; goto gotit; }
     50
     51    if (!strcmp (argv[i], "lgamma")) { type = 7; goto gotit; }
     52
    5053    if (!strcmp (argv[i], "rnd"))   { type = 7; goto gotit; }
    5154    if (!strcmp (argv[i], "xramp")) { type = 7; goto gotit; }
     
    6063    /* binary operations */
    6164    if (!strcmp (argv[i], "^"))     { type = 6; goto gotit; }
     65    if (!strcmp (argv[i], "@"))     { type = 5; goto gotit; }
    6266
    6367    if (!strcmp (argv[i], "<"))     { type = 5; goto gotit; }
  • trunk/Ohana/src/opihi/lib.shell/isolate_elements.c

    r2598 r3029  
    147147  if (!strncmp (c, "-",  1)) return (TRUE);
    148148  if (!strncmp (c, "^",  1)) return (TRUE);
     149  if (!strncmp (c, "@",  1)) return (TRUE);
    149150  if (!strncmp (c, "(",  1)) return (TRUE);
    150151  if (!strncmp (c, ")",  1)) return (TRUE);
     
    152153  if (!strncmp (c, "|",  1)) return (TRUE);
    153154  if (!strncmp (c, ">",  1)) return (TRUE);
     155  if (!strncmp (c, "<",  1)) return (TRUE);
    154156  if (!strncmp (c, "<",  1)) return (TRUE);
    155157  if (!strncmp (c, "<<", 2)) return (TRUE);
  • trunk/Ohana/src/opihi/lib.shell/stack_math.c

    r2833 r3029  
    5656      *out = pow (*M1, *M2);
    5757    break;
     58  case '@':
     59    for (i = 0; i < Nx; i++, out++, M1++, M2++)
     60      *out = DEG_RAD*atan2 (*M1, *M2);
     61    break;
    5862  case 'D':
    5963    for (i = 0; i < Nx; i++, out++, M1++, M2++)
     
    168172      *out = pow (*M1, *M2);
    169173    break;
     174  case '@':
     175    for (i = 0; i < Nx; i++, out++, M2++)
     176      *out = DEG_RAD*atan2 (*M1, *M2);
     177    break;
    170178  case 'D':
    171179    for (i = 0; i < Nx; i++, out++, M2++)
     
    274282    for (i = 0; i < Nx; i++, out++, M1++)
    275283      *out = pow (*M1, *M2);
     284    break;
     285  case '@':
     286    for (i = 0; i < Nx; i++, out++, M1++)
     287      *out = DEG_RAD*atan2 (*M1, *M2);
    276288    break;
    277289  case 'D':
     
    399411    }
    400412    break;
     413  case '@':
     414    for (i = 0; i < Ny; i++, M2++) {
     415      for (j = 0; j < Nx; j++, out++, M1++)
     416        *out = DEG_RAD*atan2 (*M1, *M2);
     417    }
     418    break;
    401419  case 'D':
    402420    for (i = 0; i < Ny; i++, M2++) {
     
    554572      for (j = 0; j < Nx; j++, out++, M1++, M2++)
    555573        *out = pow (*M1, *M2);
     574    }
     575    break;
     576  case '@':
     577    for (i = 0; i < Ny; i++) {
     578      M1 = V1[0].ptr;
     579      for (j = 0; j < Nx; j++, out++, M1++, M2++)
     580        *out = DEG_RAD*atan2 (*M1, *M2);
    556581    }
    557582    break;
     
    710735      *out = pow (*M1, *M2);
    711736    break;
     737  case '@':
     738    for (i = 0; i < Nx*Ny; i++, out++, M1++, M2++)
     739      *out = DEG_RAD*atan2 (*M1, *M2);
     740    break;
    712741  case 'D':
    713742    for (i = 0; i < Nx*Ny; i++, out++, M1++, M2++)
     
    826855      *out = pow (*M1, *M2);
    827856    break;
     857  case '@':
     858    for (i = 0; i < Nx*Ny; i++, out++, M1++)
     859      *out = DEG_RAD*atan2 (*M1, *M2);
     860    break;
    828861  case 'D':
    829862    for (i = 0; i < Nx*Ny; i++, out++, M1++)
     
    932965    for (i = 0; i < Nx*Ny; i++, out++, M2++)
    933966      *out = pow (*M1, *M2);
     967    break;
     968  case '@':
     969    for (i = 0; i < Nx*Ny; i++, out++, M2++)
     970      *out = DEG_RAD*atan2 (*M1, *M2);
    934971    break;
    935972  case 'D':
     
    10241061    *out = pow (*M1, *M2);
    10251062    break;
     1063  case '@':
     1064    *out = DEG_RAD*atan2 (*M1, *M2);
     1065    break;
    10261066  case 'D':
    10271067    *out = MIN (*M1, *M2);
     
    11141154  if (!strcmp (op, "sqrt"))  {    *out = sqrt (*M1);          }
    11151155
    1116   if (!strcmp (op, "sinh"))  {    *out = sinh (*M1);         }
    1117   if (!strcmp (op, "cosh"))  {    *out = cosh (*M1);         }
    1118   if (!strcmp (op, "asinh")) {    *out = asinh (*M1);        }
    1119   if (!strcmp (op, "acosh")) {    *out = acosh (*M1);        }
     1156  if (!strcmp (op, "sinh"))  {    *out = sinh (*M1);          }
     1157  if (!strcmp (op, "cosh"))  {    *out = cosh (*M1);          }
     1158  if (!strcmp (op, "asinh")) {    *out = asinh (*M1);         }
     1159  if (!strcmp (op, "acosh")) {    *out = acosh (*M1);         }
     1160  if (!strcmp (op, "lgamma")) {   *out = lgamma (*M1);        }
    11201161
    11211162  if (!strcmp (op, "sin"))   {    *out = sin (*M1);           }
     
    11701211  if (!strcmp (op, "sqrt"))  { for (i = 0; i < Nx; i++, out++, M1++) { *out = sqrt(*M1);         }}
    11711212
    1172   if (!strcmp (op, "sinh"))   { for (i = 0; i < Nx; i++, out++, M1++) { *out = sinh(*M1);       }}
    1173   if (!strcmp (op, "cosh"))   { for (i = 0; i < Nx; i++, out++, M1++) { *out = cosh(*M1);       }}
    1174   if (!strcmp (op, "asinh"))  { for (i = 0; i < Nx; i++, out++, M1++) { *out = asinh(*M1);      }}
    1175   if (!strcmp (op, "acosh"))  { for (i = 0; i < Nx; i++, out++, M1++) { *out = acosh(*M1);      }}
     1213  if (!strcmp (op, "sinh"))   { for (i = 0; i < Nx; i++, out++, M1++) { *out = sinh(*M1);        }}
     1214  if (!strcmp (op, "cosh"))   { for (i = 0; i < Nx; i++, out++, M1++) { *out = cosh(*M1);        }}
     1215  if (!strcmp (op, "asinh"))  { for (i = 0; i < Nx; i++, out++, M1++) { *out = asinh(*M1);       }}
     1216  if (!strcmp (op, "acosh"))  { for (i = 0; i < Nx; i++, out++, M1++) { *out = acosh(*M1);       }}
     1217  if (!strcmp (op, "lgamma")) { for (i = 0; i < Nx; i++, out++, M1++) { *out = lgamma(*M1);      }}
    11761218
    11771219  if (!strcmp (op, "sin"))   { for (i = 0; i < Nx; i++, out++, M1++) { *out = sin(*M1);          }}
     
    12351277  if (!strcmp (op, "sqrt"))  { for (i = 0; i < Nx*Ny; i++, out++, M1++) { *out = sqrt(*M1);         }}
    12361278
    1237   if (!strcmp (op, "sinh"))  { for (i = 0; i < Nx*Ny; i++, out++, M1++) { *out = sinh(*M1);        }}
    1238   if (!strcmp (op, "cosh"))  { for (i = 0; i < Nx*Ny; i++, out++, M1++) { *out = cosh(*M1);        }}
    1239   if (!strcmp (op, "asinh")) { for (i = 0; i < Nx*Ny; i++, out++, M1++) { *out = asinh(*M1);       }}
    1240   if (!strcmp (op, "acosh")) { for (i = 0; i < Nx*Ny; i++, out++, M1++) { *out = acosh(*M1);       }}
     1279  if (!strcmp (op, "sinh"))  { for (i = 0; i < Nx*Ny; i++, out++, M1++) { *out = sinh(*M1);         }}
     1280  if (!strcmp (op, "cosh"))  { for (i = 0; i < Nx*Ny; i++, out++, M1++) { *out = cosh(*M1);         }}
     1281  if (!strcmp (op, "asinh")) { for (i = 0; i < Nx*Ny; i++, out++, M1++) { *out = asinh(*M1);        }}
     1282  if (!strcmp (op, "acosh")) { for (i = 0; i < Nx*Ny; i++, out++, M1++) { *out = acosh(*M1);        }}
     1283  if (!strcmp (op, "lgamma")) { for (i = 0; i < Nx*Ny; i++, out++, M1++) { *out = lgamma(*M1);      }}
    12411284
    12421285  if (!strcmp (op, "sin"))   { for (i = 0; i < Nx*Ny; i++, out++, M1++) { *out = sin(*M1);          }}
Note: See TracChangeset for help on using the changeset viewer.