File: ext4c.c

package info (click to toggle)
scilab 4.0-12
  • links: PTS
  • area: non-free
  • in suites: etch, etch-m68k
  • size: 100,640 kB
  • ctags: 57,333
  • sloc: ansic: 377,889; fortran: 242,862; xml: 179,819; tcl: 42,062; sh: 10,593; ml: 9,441; makefile: 4,377; cpp: 1,354; java: 621; csh: 260; yacc: 247; perl: 130; lex: 126; asm: 72; lisp: 30
file content (49 lines) | stat: -rw-r--r-- 1,150 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
/* Copyright Inria/Enpc */
#include <math.h>
#include "stack-c.h"

/************************************
 *     simple example 4 (reading a scilab chain) 
 *     -->link('ext4c.o','ext4c','C'); 
 *     -->a=[1,2,3];b=[4,5,6];n=3;YesOrNo='yes' 
 *     -->c=call('ext4c',n,1,'i',a,2,'d',b,3,'d','out',[1,3],4,'d') 
 *     -->c=sin(a)+cos(b) 
 *     -->YesOrNo='no' 
 *     -->c=a+b 
 *     -->clear yes  --> undefined variable : yes 
 ************************************/

#define MAXCH 10

int ext4c(n, a, b, c)
     int *n;
     double *a, *b, *c;
{
  int k;
  char ch[MAXCH];
  int lch=MAXCH;

  /* We search a Scilab Object name YesOrNo 
   * check that it is a string 
   * and store the string in ch 
   * lch is used on entry to give the maximum number 
   * of characters which can be stored in ch 
   * After the call lch contains the number of 
   * copied characters
   */

  ReadString("YesOrNo", &lch, ch);
  /******************************/
  if (strcmp(ch, "yes") == 0) 
    {
      for (k = 0; k < *n; ++k) 
	c[k] = sin(a[k]) + cos(b[k]);
    } 
  else 
    {
      for (k = 0; k < *n; ++k) 
	c[k] = a[k] + b[k];
    }
  return(0);
}