1 /*
2  * Copyright (C) 1998, 2000-2007, 2010, 2011, 2012, 2013 SINTEF ICT,
3  * Applied Mathematics, Norway.
4  *
5  * Contact information: E-mail: tor.dokken@sintef.no
6  * SINTEF ICT, Department of Applied Mathematics,
7  * P.O. Box 124 Blindern,
8  * 0314 Oslo, Norway.
9  *
10  * This file is part of SISL.
11  *
12  * SISL is free software: you can redistribute it and/or modify
13  * it under the terms of the GNU Affero General Public License as
14  * published by the Free Software Foundation, either version 3 of the
15  * License, or (at your option) any later version.
16  *
17  * SISL is distributed in the hope that it will be useful,
18  * but WITHOUT ANY WARRANTY; without even the implied warranty of
19  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
20  * GNU Affero General Public License for more details.
21  *
22  * You should have received a copy of the GNU Affero General Public
23  * License along with SISL. If not, see
24  * <http://www.gnu.org/licenses/>.
25  *
26  * In accordance with Section 7(b) of the GNU Affero General Public
27  * License, a covered work must retain the producer line in every data
28  * file that is created or manipulated using SISL.
29  *
30  * Other Usage
31  * You can be released from the requirements of the license by purchasing
32  * a commercial license. Buying such a license is mandatory as soon as you
33  * develop commercial activities involving the SISL library without
34  * disclosing the source code of your own applications.
35  *
36  * This file may be used in accordance with the terms contained in a
37  * written agreement between you and SINTEF ICT.
38  */
39 
40 #ifndef SISL_INCLUDED
41 #define SISL_INCLUDED
42 
43 
44 /// \mainpage SISL Documentation
45 ///
46 /// SISL is a comprehensive NURBS library for the modeling and
47 /// interrogation of curves and surfaces.
48 
49 
50 
51 /*
52  * Enable function prototypes for ANSI C and C++
53  * ----------------------------------------------
54 */
55 
56 #if defined(sgi)
57 #undef SISLNEEDPROTOTYPES
58 #define SISLNEEDPROTOTYPES
59 #endif
60 
61 #if defined(__STDC__) || defined (c_plusplus) || defined (__cplusplus) || defined(__BORLANDC__)
62 #undef SISLNEEDPROTOTYPES
63 #define SISLNEEDPROTOTYPES
64 #endif
65 
66 #ifdef __BORLANDC__
67 # define GO_API __declspec(package)
68 #elif defined(MICROSOFT) || defined(_MSC_VER)
69 # if defined(__DLL__) || defined(_DLL)
70 #  define GO_API __declspec(dllexport)
71 # else
72 #  define GO_API __declspec(dllimport)
73 # endif // __DLL__
74 #else
75 # define GO_API
76 #endif // __BORLANDC__
77 
78 typedef struct SISLdir
79 {
80   int igtpi;			/* 0 - The direction of the surface or curve
81 			               is not greater than pi in any
82 			               parameter direction.
83 			           1 - The direction of the surface or curve
84 			               is greater than pi in the first
85 			               parameter direction.
86 			           2 - The direction of the surface is greater
87 			               than pi in the second parameter
88 			               direction. 			     */
89   double *ecoef;		/* The coordinates to the center of the cone.*/
90   double aang;			/* The angle from the center whice describe the
91 			           cone.				     */
92   double *esmooth;		/* Coordinates of object after smoothing.    */
93 } SISLdir;
94  /* The following structure contains 3 different boxes. The
95     first box is the plain box given by the coefficients of the
96     object. The second box is expanded with the half of a given
97     tolerance. The third box is expanded with half the tolerance
98     in the inner and for the vertices at the edges/endpoints
99     a distance of half the tolerance is removed. The minimum and
100     maximum values of the boxes are given by the arrays
101     e2min[0] - e2min[2] and e2max[0] - e2max[2]. The tolerances used
102     when making the boxes are stored in etol[0] - etol[2]. etol[0]
103     will always be equal to zero. If a box is made, the pointers
104     belonging to this box points to arrays, otherwise they point
105     to SISL_NULL.                                                       */
106 
107 typedef struct SISLbox
108 {
109   double *emax;			/* The minimum values to the boxes.	     */
110   double *emin;			/* The maximum values to the boxes.	     */
111   int imin;			/* The index of the min coeff (one-dim case) */
112   int imax;			/* The index of the max coeff (one-dim case) */
113 
114   double *e2max[3];		/* The minimum values dependant on tolerance.*/
115   double *e2min[3];		/* The maximum values dependant on tolerance.*/
116   double etol[3];		/* Tolerances of the boxes.                  */
117 } SISLbox;
118 
119 /* Information used in intersection functionality           */
120 enum /* SEGMENTATION_TYPE */
121   {
122     NO_SEG_TYPE = 0,
123     TANGENTIAL_BELT_LEFT,
124     TANGENTIAL_BELT_RIGHT,
125     LIMITING_SEG
126   };
127 
128 enum /* SURFACE_TYPE */
129   {
130     NO_SURFACE_TYPE = 0,
131     TANGENTIAL_BELT
132   };
133 
134 typedef struct SISLSegmentation
135 {
136   double *seg_val;
137   int *seg_type;   /* SEGMENTATION_TYPE */
138   int num_seg;
139 } SISLSegmentation;
140 
141 /* This file will contain the definition of the structure SISLCurve which
142    will contain the description of a B-spline curve.                        */
143 
144 typedef struct SISLCurve
145 {
146   int ik;			/* Order of curve.                           */
147   int in;			/* Number of vertices.                       */
148   double *et;			/* Pointer to the knotvector.                */
149   double *ecoef;		/* Pointer to the array containing vertices. */
150   double *rcoef;		/*Pointer to the array of scaled vertices if
151 				  rational.  */
152   int ikind;			/* Kind of curve
153 	                           = 1 : Polynomial B-spline curve.
154 	                           = 2 : Rational B-spline curve.
155 	                           = 3 : Polynomial Bezier curve.
156 	                           = 4 : Rational Bezier curve.             */
157   int idim;			/* Dimension of the space in which the curve
158 				   lies.      */
159   int icopy;			/* Indicates whether the arrays of the curve
160 				   are copied or referenced by creation of the
161 				   curve.
162 	                           = 0 : Pointer set to input arrays.
163 			           = 1 : Copied.
164 	                           = 2 : Pointer set to input arrays,
165 				         but are to be treated as copied.   */
166   SISLdir *pdir;		/* Pointer to a structur to store curve
167 				   direction.      */
168   SISLbox *pbox;		/* Pointer to a structur to store the
169 				   surrounded boxes. */
170   int cuopen;			/* Open/closed flag.                         */
171 } SISLCurve;
172 
173 /* This file will contain the definition of the structure SISLSurf which
174    contains the description of a tensor-product surface.                    */
175 
176 typedef struct SISLSurf
177 {
178   int ik1;			/* Order of surface in first parameter
179 				   direction.       */
180   int ik2;			/* Order of surface in second parameter
181 				   direction.      */
182   int in1;			/* Number of vertices in first parameter
183 				   direction.     */
184   int in2;			/* Number of vertices in second parameter
185 				   direction.    */
186   double *et1;			/* Pointer to knotvector in first parameter
187 				   direction.  */
188   double *et2;			/* Pointer to knotvector in second parameter
189 				   direction. */
190   double *ecoef;		/* Pointer to array of vertices of surface. */
191   double *rcoef;		/* Pointer to the array of scaled vertices
192 				   if surface is rational. */
193   int ikind;			/* Kind of surface
194 	                           = 1 : Polynomial B-spline tensor-product
195 				         surface.
196 	                           = 2 : Rational B-spline tensor-product
197 				         surface.
198 	                           = 3 : Polynomial Bezier tensor-product
199 				         surface.
200 	                           = 4 : Rational Bezier tensor-product
201 				         surface.                           */
202   int idim;			/* Dimension of the space in which the surface
203 				   lies.    */
204   int icopy;			/* Indicates whether the arrays of the surface
205 				   are copied or referenced by creation of
206 				   the surface.
207 	                           = 0 : Pointer set to input arrays.
208 			           = 1 : Copied.
209 	                           = 2 : Pointer set to input arrays,
210 				         but are to be treated as copied.               */
211   SISLdir *pdir;		/* Pointer to a structur to store surface
212 				   direction.    */
213   SISLbox *pbox;		/* Pointer to a structur to store the
214 				   surrounded boxes. */
215   int use_count;                /* use count so that several tracks can share
216 				   surfaces, no internal use */
217  int cuopen_1;                  /* Open/closed flag, 1. par directiion */
218  int cuopen_2;                  /* Open/closed flag. 2. par direction  */
219   SISLSegmentation *seg1;       /* Segmentation information for use in
220 				   intersection functionality, 1. par. dir. */
221   SISLSegmentation *seg2;       /* Segmentation information for use in
222 				   intersection functionality, 2. par. dir. */
223   int sf_type;        /* SURFACE_TYPE, Flag for special surface information */
224 } SISLSurf;
225 
226 /* This file contains the description of an intersection curve.
227    The curve is given by a number of points represented by the
228    parameter-values of the point in the objects involved in the
229    intersection. Pointers to the curve in the geometry space and
230    in the parameter planes of the objects might exist.            */
231 
232 typedef struct SISLIntcurve
233 {
234   int ipoint;			/* Number of points defining the curve.      */
235   int ipar1;			/* Number of parameter directions of first
236 				   object.                                   */
237   int ipar2;			/* Number of parameter directions of second
238 				 * object.                                   */
239   double *epar1;		/* Pointer to the parameter-values of the
240 				   points
241 	                           in the first object.                      */
242   double *epar2;		/* Pointer to the parameter-values of the
243 				   points
244 	                           in the second object. If one of the objects
245 	                           is an analytic curve or surface epar2 points
246 	                           to nothing.                               */
247   SISLCurve *pgeom;		/* Pointer to the intersection curve in the
248 				   geometry space. If the curve is not
249 				   computed, pgeom points to nothing.       */
250   SISLCurve *ppar1;		/* Pointer to the intersection curve in the
251 				   parameter plane of the first object. If
252 				   the curve is not computed, ppar1 points
253 				   to nothing.                              */
254   SISLCurve *ppar2;		/* Pointer to the intersection curve in the
255 				   parameter plane of the second object. If
256 				   the curve is not computed, ppar2 points
257 				   to nothing.                              */
258   int itype;			/* Kind of curve.
259 	                           = 1 : Straight line.
260 	                           = 2 : Closed loop. No singularities.
261 	                           = 3 : Closed loop. One singularity.
262 				         Not used.
263 	                           = 4 : Open curve. No singularity.
264 	                           = 5 : Open curve. Singularity at the
265 	                                 beginning of the curve.
266 	                           = 6 : Open curve. Singularity at the end
267 	                                 of the curve.
268 	                           = 7 : Open curve. Singularity at the
269 				         beginning  and end of the curve.
270 	                           = 8 : An isolated singularity. Not used.
271 				   = 9 : The curve is exact, pgeom and either
272 				   	 ppar1 or ppar2 is set.      */
273 
274   int pretop[4];		/* Pretopology */
275 } SISLIntcurve;
276 
277 /* Pretopology information. */
278 
279 enum
280 {
281   SI_RIGHT=1, SI_LEFT=2
282 };
283 enum
284 {
285   SI_UNDEF, SI_IN, SI_OUT, SI_ON, SI_AT
286 };
287 
288 #define SISL_CRV_PERIODIC -1
289 #define SISL_CRV_OPEN 1
290 #define SISL_CRV_CLOSED 0
291 
292 #define SISL_SURF_PERIODIC -1
293 #define SISL_SURF_OPEN 1
294 #define SISL_SURF_CLOSED 0
295 
296  /*
297  * Required for C++ 2.0 and later version
298  * --------------------------------------
299  */
300 #if defined(__cplusplus)
301     extern "C" {
302 #endif
303 #if defined(SISLNEEDPROTOTYPES)
304 
305 #ifndef CONSTRUCT
306 extern
307 #endif
308 SISLbox GO_API *newbox(int);
309 #ifndef CONSTRUCT
310 extern
311 #endif
312 SISLCurve GO_API *newCurve(int,int,double *,double *,int,int,int);
313 #ifndef CONSTRUCT
314 extern
315 #endif
316 SISLCurve GO_API *copyCurve(SISLCurve *);
317 #ifndef CONSTRUCT
318 extern
319 #endif
320 SISLdir GO_API *newdir(int);
321 #ifndef CONSTRUCT
322 extern
323 #endif
324 SISLIntcurve GO_API *newIntcurve(int,int,int,double *,double *,int);
325 #ifndef CONSTRUCT
326 extern
327 #endif
328 SISLSurf GO_API *newSurf(int,int,int,int,double *,double *,double *,int,int,int);
329 #ifndef CONSTRUCT
330 extern
331 #endif
332 SISLSurf GO_API *copySurface(SISLSurf *);
333 
334 #ifndef DESTRUCT
335 extern
336 #endif
337 void GO_API freeCurve(SISLCurve *);
338 #ifndef DESTRUCT
339 extern
340 #endif
341 void GO_API freeIntcrvlist(SISLIntcurve **,int);
342 #ifndef DESTRUCT
343 extern
344 #endif
345 void GO_API freeIntcurve(SISLIntcurve *);
346 #ifndef DESTRUCT
347 extern
348 #endif
349 void GO_API freeSurf(SISLSurf *);
350 #ifndef  S1001
351 extern
352 #endif
353 void GO_API s1001(SISLSurf *,double,double,double,double,SISLSurf **,int *);
354 #ifndef  S1011
355 extern
356 #endif
357 void GO_API s1011(double [],double [],double [],double,int,SISLCurve **,int *);
358 #ifndef  S1012
359 extern
360 #endif
361 void GO_API s1012(double [],double [],double [],double,int,int,
362 		SISLCurve **,int *);
363 #ifndef  S1013
364 extern
365 #endif
366 void GO_API s1013(SISLCurve *,double,double,double,double *,int *);
367 #ifndef  S1014
368 extern
369 #endif
370 void GO_API s1014(SISLCurve *,double[],double,double,double[],double[],double,
371                   double *,double *,double[],int *);
372 #ifndef  S1015
373 extern
374 #endif
375 void GO_API s1015(SISLCurve *,SISLCurve *,double,double[],double[],double,
376 		  double *,double *,double[],int *);
377 #ifndef  S1016
378 extern
379 #endif
380 void GO_API s1016(SISLCurve *,double[],double[],double,double[],double[],
381 		  double,double *,double *,double[],int *);
382 #ifndef  S1017
383 extern
384 #endif
385 void GO_API s1017(SISLCurve *,SISLCurve **,double,int *);
386 #ifndef  S1018
387 extern
388 #endif
389 void GO_API s1018(SISLCurve *,double [],int,SISLCurve **,int *);
390 #ifndef  S1021
391 extern
392 #endif
393 void GO_API s1021(double [],double [],double,double [],double,SISLSurf **,int *);
394 #ifndef  S1022
395 extern
396 #endif
397 void GO_API s1022(double [],double[],double,double [],double,double,
398 	       SISLSurf **,int *);
399 #ifndef  S1023
400 extern
401 #endif
402 void GO_API s1023(double [],double [],double [],int,int,SISLSurf **,int *);
403 #ifndef  S1024
404 extern
405 #endif
406 void GO_API s1024(double [],double [],double [],double,int,int,int,
407 	      SISLSurf **,int *);
408 #ifndef  S1025
409 extern
410 #endif
411 void GO_API s1025(SISLSurf *,double [],int,double [],int,SISLSurf **,int *);
412 #ifndef  S1221
413 extern
414 #endif
415 void GO_API s1221(SISLCurve *,int,double,int *,double [],int *);
416 #ifndef  S1225
417 extern
418 #endif
419 void GO_API s1225(SISLCurve *,int,double,int *,double [],double [],double *,int *);
420 #ifndef  S1226
421 extern
422 #endif
423 void GO_API s1226(SISLCurve *,int,double,int *,double [],double [],double *,int *);
424 #ifndef  S1227
425 extern
426 #endif
427 void GO_API s1227(SISLCurve *,int,double,int *,double [],int *);
428 #ifndef  S1233
429 extern
430 #endif
431 void GO_API s1233(SISLCurve *,double,double,SISLCurve **,int *);
432 #ifndef  S1237
433 extern
434 #endif
435 void GO_API s1237(SISLSurf *,int,int,double,int *);
436 #ifndef  S1238
437 extern
438 #endif
439 void GO_API s1238(SISLSurf *,SISLCurve *,int,int,double,double,int *);
440 #ifndef  S1240
441 extern
442 #endif
443 void GO_API s1240(SISLCurve *,double,double *,int *);
444 #ifndef  S1241
445 extern
446 #endif
447 void GO_API s1241(SISLCurve *,double [],int,double,double *,int *);
448 #ifndef  S1243
449 extern
450 #endif
451 void GO_API s1243(SISLCurve *,double [],int,double,double[],double *,
452             double *,int *);
453 #ifndef  S1302
454 extern
455 #endif
456 void GO_API s1302(SISLCurve *,double,double,double [],double [],SISLSurf **,int *);
457 #ifndef  S1303
458 extern
459 #endif
460 void GO_API s1303(double [],double,double,double [],double [],int,SISLCurve **,int *);
461 #ifndef  S1310
462 extern
463 #endif
464 void GO_API s1310(SISLSurf *,SISLSurf *,SISLIntcurve *,double,double,int,int,int *);
465 #ifndef  S1314
466 extern
467 #endif
468 void GO_API s1314(SISLSurf *,double *,double *,int,double,double,double,
469 	   SISLIntcurve *,int,int,int *);
470 #ifndef  S1315
471 extern
472 #endif
473 void GO_API s1315(SISLSurf *,double *,double,int,double,double,double,
474 	   SISLIntcurve *,int,int,int *);
475 #ifndef  S1316
476 extern
477 #endif
478 void GO_API s1316(SISLSurf *,double *,double *,double,int,double,double,double,
479 	   SISLIntcurve *,int,int,int *);
480 #ifndef  S1317
481 extern
482 #endif
483 void GO_API s1317(SISLSurf *,double *,double *,double *,int,double,double,double,
484 	   SISLIntcurve *,int,int,int *);
485 #ifndef  S1318
486 extern
487 #endif
488 void GO_API s1318(SISLSurf *,double *,double *,double,double,int,double,double,
489 	   double,SISLIntcurve *,int,int,int *);
490 #ifndef  S1319
491 extern
492 #endif
493 void GO_API s1319(SISLSurf *,double *,int,double,double,double,SISLIntcurve *,
494 	   int,int,int *);
495 #ifndef  S1327
496 extern
497 #endif
498 void GO_API s1327(SISLCurve *,double [],double [],double [],int,SISLCurve **,int *);
499 #ifndef  S1328
500 extern
501 #endif
502 void GO_API s1328(SISLSurf *,double [],double [],double [],int,SISLSurf **,int *);
503 #ifndef  S1332
504 extern
505 #endif
506 void GO_API s1332(SISLCurve *,SISLCurve *,double,double [],SISLSurf **,int *);
507 #ifndef  S1356
508 extern
509 #endif
510 void GO_API s1356(double [],int,int,int [],int,int,int,int,double,
511 	   double *,SISLCurve **,double **,int *,int *);
512 #ifndef  S1357
513 extern
514 #endif
515 void GO_API s1357(double [],int,int,int [],double [],int,int,int,int,double,
516 	   double *,SISLCurve **,double **,int *,int *);
517 #ifndef  S1360
518 extern
519 #endif
520 void GO_API s1360(SISLCurve *,double,double,double [],double,int,SISLCurve **,int *);
521 #ifndef  S1363
522 extern
523 #endif
524 void GO_API s1363(SISLCurve *,double *,double *,int *);
525 #ifndef  S1364
526 extern
527 #endif
528 void GO_API s1364(SISLCurve *,double,int *);
529 #ifndef S1365
530 extern
531 #endif
532 void GO_API s1365(SISLSurf *,double,double, double,int,SISLSurf **,int *);
533 #ifndef  S1369
534 extern
535 #endif
536 void GO_API s1369(SISLSurf *,double [],double [],double,double,int,double,double,
537 	   int *,double **,int *,SISLIntcurve ***,int *);
538 #ifndef  S1371
539 extern
540 #endif
541 void GO_API s1371(SISLCurve *,double [],double,int,double,double,
542 	   int *,double **,int *,SISLIntcurve ***,int *);
543 #ifndef  S1372
544 extern
545 #endif
546 void GO_API s1372(SISLCurve *,double [],double [],double,int,double,double,
547 	   int *,double **,int *,SISLIntcurve ***,int *);
548 #ifndef  S1373
549 extern
550 #endif
551 void GO_API s1373(SISLCurve *,double [],double [],double [],int,double,double,
552 	   int *,double **,int *,SISLIntcurve ***,int *);
553 #ifndef  S1374
554 extern
555 #endif
556 void GO_API s1374(SISLCurve *,double [],int,double,double,
557 	   int *,double **,int *,SISLIntcurve ***,int *);
558 #ifndef  S1375
559 extern
560 #endif
561 void GO_API s1375(SISLCurve *,double [],double [],double,double,int,double,double,
562 	   int *,double **,int *,SISLIntcurve ***,int *);
563 #ifndef  S1379
564 extern
565 #endif
566 void GO_API s1379(double [],double [],double [],int,int,SISLCurve **,int *);
567 #ifndef  S1380
568 extern
569 #endif
570 void GO_API s1380(double [],double [],int,int,int,SISLCurve **,int *);
571 #ifndef  S1383
572 extern
573 #endif
574 void GO_API s1383(SISLSurf *,SISLCurve *,double,double,int,SISLCurve **,
575 	   SISLCurve **,SISLCurve **,int *);
576 #ifndef  S1386
577 extern
578 #endif
579 void GO_API s1386(SISLSurf *,int,int,SISLSurf **,int *);
580 #ifndef  S1387
581 extern
582 #endif
583 void GO_API s1387(SISLSurf *,int,int,SISLSurf **,int *);
584 #ifndef  S1388
585 extern
586 #endif
587 void GO_API s1388(SISLSurf *,double *[],int *,int *,int *,int *);
588 #ifndef  S1389
589 extern
590 #endif
591 void GO_API s1389(SISLCurve *,double *[],int *,int *,int *);
592 #ifndef  S1390
593 extern
594 #endif
595 void GO_API s1390(SISLCurve *[],SISLSurf **,int [],int *);
596 #ifndef  S1391
597 extern
598 #endif
599 void GO_API s1391(SISLCurve **,SISLSurf ***,int,int [],int *);
600 #ifndef  S1401
601 extern
602 #endif
603 void GO_API s1401(SISLCurve *[],double [],SISLSurf **,int *);
604 #ifndef  S1421
605 extern
606 #endif
607 void GO_API s1421(SISLSurf *,int,double [],int *,int *,double [],double [],int *);
608 #ifndef  S1422
609 extern
610 #endif
611 void GO_API s1422(SISLSurf *,int,int,int,double [],int *,int *,
612 		 double [],double [],int *);
613 #ifndef  S1424
614 extern
615 #endif
616 void GO_API s1424(SISLSurf *,int,int,double [],int *,int *,double [],int *);
617 #ifndef  S1425
618 extern
619 #endif
620 void GO_API s1425(SISLSurf *,int,int,int,int,double [],int *,int *,
621 		 double [],int *);
622 #ifndef  S1439
623 extern
624 #endif
625 void GO_API s1439(SISLSurf *,double,int,SISLCurve **,int *);
626 #ifndef  S1440
627 extern
628 #endif
629 void GO_API s1440(SISLSurf *,SISLSurf **,int *);
630 #ifndef  S1450
631 extern
632 #endif
633 void GO_API s1450(SISLSurf *,double,int *,int *,int *,int *,int *,int *,int *);
634 #ifndef  S1451
635 extern
636 #endif
637 void GO_API s1451(SISLCurve *,double,int *,int *);
638 #ifndef S1501
639 extern
640 #endif
641 void GO_API s1501(SISLSurf *,double *,double *,double *,double,double,int,
642 	   double,double,double,SISLIntcurve *,int,int,int *);
643 #ifndef S1502
644 extern
645 #endif
646 void GO_API s1502(SISLCurve *,double [],double [],double [],double,double,int,
647 	   double,double,int *,double **,int *,SISLIntcurve ***,int *);
648 #ifndef S1503
649 extern
650 #endif
651 void GO_API s1503(SISLSurf *,double [],double [],double [],double,double,int,
652 	   double,double,int *,double **,int *,SISLIntcurve ***,int *);
653 #ifndef S1506
654 extern
655 #endif
656 void GO_API s1506(SISLSurf *,int,int,double *,int,double *,double [],
657            double [],int *);
658 #ifndef S1508
659 extern
660 #endif
661 void GO_API s1508(int,SISLCurve **,double[],SISLSurf **,int *);
662 #ifndef S1510
663 extern
664 #endif
665 void GO_API s1510(SISLSurf *,double [],int,double,double,
666 	   int *,double **,int *,SISLIntcurve ***,int *);
667 #ifndef S1511
668 extern
669 #endif
670 void GO_API s1511(SISLSurf *,double [],double [],int,double,double,
671 	   int *,double **,int *,SISLIntcurve ***,int *);
672 #ifndef S1514
673 extern
674 #endif
675 void GO_API s1514(SISLSurf *,double [],int,double,double,double,SISLIntcurve *,
676 	   int,int,int *);
677 #ifndef S1515
678 extern
679 #endif
680 void GO_API s1515(SISLSurf *,double [],double [],int,double,double,double,
681 	   SISLIntcurve *,int,int,int *);
682 #ifndef S1518
683 extern
684 #endif
685 void GO_API s1518(SISLSurf *surf, double point[], double dir[], double epsge,
686 	   double start[], double end[], double parin[], double parout[],
687 	   int *stat);
688 #ifndef  S1522
689 extern
690 #endif
691 void GO_API s1522(double [],double [],double [],double,int,SISLCurve **,int *);
692 #ifndef S1529
693 extern
694 #endif
695 void GO_API s1529(double [],double [],double [],double [],
696            int,int,int,int,SISLSurf **,int *);
697 #ifndef S1530
698 extern
699 #endif
700 void GO_API s1530(double [],double [],double [],double [], double [],double [],
701            int ,int ,int , SISLSurf **,int *);
702 #ifndef S1534
703 extern
704 #endif
705 void GO_API s1534(double [],double [],double [],double [],int,int,int,
706 	   int,int,int,int,int,int,int,int,int,SISLSurf **,int *);
707 #ifndef S1535
708 extern
709 #endif
710 void GO_API s1535(double [],double [],double [],double [],int,int,int,double [],
711 	   double [],int,int,int,int,int,int,int,int,SISLSurf **,int *);
712 #ifndef S1536
713 extern
714 #endif
715 void GO_API s1536(double [],int,int,int,int,int,int,int,int,int,int,
716 	   int,int,SISLSurf **,int *);
717 #ifndef S1537
718 extern
719 #endif
720 void GO_API s1537(double [],int,int,int,double [],double [],int,int,
721 	   int,int,int,int,int,int,SISLSurf **,int *);
722 #ifndef  S1538
723 extern
724 #endif
725 void GO_API s1538(int,SISLCurve *[],int [],double,int,int,int,SISLSurf **,
726 	   double **,int *);
727 #ifndef  S1539
728 extern
729 #endif
730 void GO_API s1539(int,SISLCurve *[],int [],double [], double,int,int,int,SISLSurf **,
731 	   double **,int *);
732 #ifndef  S1542
733 extern
734 #endif
735 void GO_API s1542(SISLCurve *, int, double *, double [], int *);
736 #ifndef  S1600
737 extern
738 #endif
739 void GO_API s1600(SISLCurve *,double [],double [],int,SISLCurve **,int *);
740 #ifndef  S1601
741 extern
742 #endif
743 void GO_API s1601(SISLSurf *,double [],double [],int,SISLSurf **,int *);
744 #ifndef  S1602
745 extern
746 #endif
747 void GO_API s1602(double [],double [],int,int,double,double *,SISLCurve **,int *);
748 #ifndef  S1603
749 extern
750 #endif
751 void GO_API s1603(SISLSurf *,double *,double *,double *,double *,int *);
752 #ifndef  S1606
753 extern
754 #endif
755 void GO_API s1606(SISLCurve *,SISLCurve *,double,double [],double [],
756 	   int,int,int,SISLCurve **,int *);
757 #ifndef  S1607
758 extern
759 #endif
760 void GO_API s1607(SISLCurve *,SISLCurve *,double,double,double,double,double,
761 	   int,int,int,SISLCurve **,int *);
762 #ifndef  S1608
763 extern
764 #endif
765 void GO_API s1608(SISLCurve *,SISLCurve *,double,double [],double [],double [],
766 	   double [],int,int,int,SISLCurve **,double *,double *,
767 	   double *,double *,int *);
768 #ifndef  S1609
769 extern
770 #endif
771 void GO_API s1609(SISLCurve *,SISLCurve *,double,double [],double [],double [],
772 	   double,double [],int,int,int,SISLCurve **,double *,double *,
773 	   double *,double *,int *);
774 #ifndef  S1611
775 extern
776 #endif
777 void GO_API s1611(double [],int,int,double [],int,int,double,double,
778 	   double *,SISLCurve **,int *);
779 #ifndef  S1613
780 extern
781 #endif
782 void GO_API s1613(SISLCurve *,double,double **,int *,int *);
783 #ifndef S1620
784 extern
785 #endif
786 void GO_API s1620(double epoint[],int inbpnt1, int inbpnt2, int ipar,
787            int iopen1, int iopen2, int ik1, int ik2, int idim,
788            SISLSurf **rs,int *jstat);
789 #ifndef  S1630
790 extern
791 #endif
792 void GO_API s1630(double [],int,double,int,int,int,SISLCurve **,int *);
793 #ifndef  S1706
794 extern
795 #endif
796 void GO_API s1706(SISLCurve *);
797 #ifndef  S1710
798 extern
799 #endif
800 void GO_API s1710(SISLCurve *,double,SISLCurve **,SISLCurve **,int *);
801 #ifndef  S1711
802 extern
803 #endif
804 void GO_API s1711(SISLSurf *,int,double,SISLSurf **,SISLSurf **,int *);
805 #ifndef  S1712
806 extern
807 #endif
808 void GO_API s1712(SISLCurve *,double,double,SISLCurve **,int *);
809 #ifndef  S1713
810 extern
811 #endif
812 void GO_API s1713(SISLCurve *,double,double,SISLCurve **,int *);
813 #ifndef  S1714
814 extern
815 #endif
816 void GO_API s1714(SISLCurve *,double,double,SISLCurve **,SISLCurve **,int *);
817 #ifndef  S1715
818 extern
819 #endif
820 void GO_API s1715(SISLCurve *,SISLCurve *,int,int,SISLCurve **,int *);
821 #ifndef  S1716
822 extern
823 #endif
824 void GO_API s1716(SISLCurve *,SISLCurve *,double,SISLCurve **,int *);
825 #ifndef  S1720
826 extern
827 #endif
828 void GO_API s1720(SISLCurve *,int,SISLCurve **,int *);
829 #ifndef  S1730
830 extern
831 #endif
832 void GO_API s1730(SISLCurve *,SISLCurve **,int *);
833 #ifndef  S1731
834 extern
835 #endif
836 void GO_API s1731(SISLSurf *,SISLSurf **,int *);
837 #ifndef  S1732
838 extern
839 #endif
840 void GO_API s1732(SISLCurve *,int,double *,double *,double *,int *);
841 #ifndef  S1733
842 extern
843 #endif
844 void GO_API s1733(SISLSurf *,int,int,double *,double *,double *,double *,
845 	   double *,int *);
846 #ifndef  S1750
847 extern
848 #endif
849 void GO_API s1750(SISLCurve *,int,SISLCurve **,int *);
850 #ifndef  S1774
851 extern
852 #endif
853 void GO_API s1774(SISLCurve *,double [],int,double,double,double,double,double *,
854 	   int *);
855 #ifndef  S1775
856 extern
857 #endif
858 void GO_API s1775(SISLSurf *,double [],int,double,double [],double [],double [],
859 	   double [],int *);
860 #ifndef  S1850
861 extern
862 #endif
863 void GO_API s1850(SISLCurve *,double [],double [],int,double,double,
864 	   int *,double **,int *,SISLIntcurve ***,int *);
865 #ifndef  S1851
866 extern
867 #endif
868 void GO_API s1851(SISLSurf *,double [],double [],int,double,double,
869 	   int *,double **,int *,SISLIntcurve ***,int *);
870 #ifndef  S1852
871 extern
872 #endif
873 void GO_API s1852(SISLSurf *,double [],double,int,double,double,
874 	   int *,double **, int *,SISLIntcurve ***,int *);
875 #ifndef  S1853
876 extern
877 #endif
878 void GO_API s1853(SISLSurf *,double [],double [],double,int,double,double,
879 	   int *,double **,int *,SISLIntcurve ***,int *);
880 #ifndef  S1854
881 extern
882 #endif
883 void GO_API s1854(SISLSurf *,double [],double [],double [],int,double,double,
884 	   int *,double **,int *,SISLIntcurve ***,int *);
885 #ifndef  S1855
886 extern
887 #endif
888 void GO_API s1855(SISLSurf *,double [],double,double [],int,double,double,
889 	   int *,double **,int *,SISLIntcurve ***,int *);
890 #ifndef  S1856
891 extern
892 #endif
893 void GO_API s1856(SISLSurf *,double [],double [],int,double,double,
894 	   int *,double **,int *,SISLIntcurve ***,int *);
895 #ifndef  S1857
896 extern
897 #endif
898 void GO_API s1857(SISLCurve *,SISLCurve *,double,double,
899 	   int *,double **,double **,int *,SISLIntcurve ***,int *);
900 #ifndef  S1858
901 extern
902 #endif
903 void GO_API s1858(SISLSurf *,SISLCurve *,double,double,
904 	   int *,double **,double **,int *,SISLIntcurve ***,int *);
905 #ifndef  S1859
906 extern
907 #endif
908 void GO_API s1859(SISLSurf *,SISLSurf *,double,double,
909 	   int *,double **,double **,int *,SISLIntcurve ***,int *);
910 #ifndef  S1860
911 extern
912 #endif
913 void GO_API s1860(SISLSurf *,double [],int,double,double,
914 	   int *,double **,int *,SISLIntcurve ***,int *);
915 #ifndef  S1870
916 extern
917 #endif
918 void
919    s1870(SISLSurf *ps1, double *pt1, int idim, double aepsge,
920 	 int *jpt,double **gpar1,int *jcrv,SISLIntcurve ***wcurve,int *jstat);
921 #ifndef S1871
922 extern
923 #endif
924 void
925    s1871(SISLCurve *pc1, double *pt1, int idim, double aepsge,
926 	 int *jpt,double **gpar1,int *jcrv,SISLIntcurve ***wcurve,int *jstat);
927 #ifndef  S1920
928 extern
929 #endif
930 void GO_API s1920(SISLCurve *,double [],int,double,double,
931 	   int *,double **,int *,SISLIntcurve ***,int *);
932 #ifndef  S1921
933 extern
934 #endif
935 void GO_API s1921(SISLSurf *,double [],int,double,double,
936 	   int *,double **,int *,SISLIntcurve ***,int *);
937 #ifndef S1940
938 extern
939 #endif
940 void GO_API s1940(SISLCurve *oldcurve, double eps[], int startfix, int endfix,
941 	   int iopen, int itmax, SISLCurve **newcurve, double maxerr[],
942 	   int *stat);
943 #ifndef  S1953
944 extern
945 #endif
946 void GO_API s1953(SISLCurve *,double [],int,double,double,
947 	   int *,double **,int *,SISLIntcurve ***,int *);
948 #ifndef  S1954
949 extern
950 #endif
951 void GO_API s1954(SISLSurf *,double [],int,double,double,
952 	   int *,double **,int *,SISLIntcurve ***,int *);
953 #ifndef  S1955
954 extern
955 #endif
956 void GO_API s1955(SISLCurve *,SISLCurve *,double,double,
957 	   int *,double **,double **,int *,SISLIntcurve ***,int *);
958 #ifndef  S1957
959 extern
960 #endif
961 void GO_API s1957(SISLCurve *,double [],int,double,double,double *,double *,int *);
962 #ifndef  S1958
963 extern
964 #endif
965 void GO_API s1958(SISLSurf *,double [],int,double,double,double [],double *,int *);
966 #ifndef S1961
967 extern
968 #endif
969 void GO_API s1961(double ep[],int im,int idim,int ipar,double epar[],
970 	   double eeps[],int ilend,int irend,int iopen,double afctol,
971 	   int itmax,int ik,SISLCurve **rc,double emxerr[],
972 	   int *jstat);
973 #ifndef S1962
974 extern
975 #endif
976 void GO_API s1962(double ep[],double ev[],int im,int idim,int ipar,double epar[],
977            double eeps[],int ilend,int irend,int iopen,int itmax,
978            SISLCurve **rc,double emxerr[],int *jstat);
979 #ifndef S1963
980 extern
981 #endif
982 void GO_API s1963(SISLCurve *pc,double eeps[],int ilend,int irend,int iopen,
983            int itmax, SISLCurve **rc,int *jstat);
984 #ifndef S1965
985 extern
986 #endif
987 void GO_API s1965(SISLSurf *oldsurf,double eps[],int edgefix[4],int iopen1,
988            int iopen2,double edgeps[],int opt,int itmax,
989            SISLSurf **newsurf,double maxerr[],int *stat);
990 #ifndef S1966
991 extern
992 #endif
993 void GO_API s1966(double ep[],int im1,int im2,int idim,int ipar,double epar1[],
994            double epar2[],double eeps[],int nend[],int iopen1,int iopen2,
995            double edgeps[],double afctol,int iopt,int itmax,
996            int ik1,int ik2,SISLSurf **rs,double emxerr[],int *jstat);
997 #ifndef S1967
998 extern
999 #endif
1000 void GO_API s1967(double ep[],double etang1[],double etang2[],double eder11[],
1001            int im1,int im2,int idim,int ipar,double epar1[],double epar2[],
1002            double eeps[],int nend[],int iopen1,int iopen2,double edgeps[],
1003            int iopt,int itmax,SISLSurf **rs,double emxerr[],
1004            int *jstat);
1005 #ifndef S1968
1006 extern
1007 #endif
1008 void GO_API s1968(SISLSurf *ps,double eeps[],int nend[],int iopen1,int iopen2,
1009            double edgeps[],int iopt,int itmax,SISLSurf **rs,
1010            int *jstat);
1011 #ifndef S1986
1012 extern
1013 #endif
1014 void GO_API s1986(SISLCurve *pc, double aepsge, int *jgtpi, double **gaxis,
1015 	   double *cang,int *jstat);
1016 #ifndef S1987
1017 extern
1018 #endif
1019 void GO_API s1987(SISLSurf *ps, double aepsge, int *jgtpi, double **gaxis,
1020 	   double *cang,int *jstat);
1021 #ifndef S1988
1022 extern
1023 #endif
1024 void GO_API s1988(SISLCurve *,double **,double **,int *);
1025 #ifndef S1989
1026 extern
1027 #endif
1028 void GO_API s1989(SISLSurf *,double **,double **,int *);
1029 #ifndef  S2500
1030 extern
1031 #endif
1032 void GO_API s2500(SISLSurf *, int, int, int, double [], int *, int *, double *, int *);
1033 #ifndef  S2502
1034 extern
1035 #endif
1036 void GO_API s2502(SISLSurf *, int, int, int, double [], int *, int *, double *, int *);
1037 #ifndef  S2504
1038 extern
1039 #endif
1040 void GO_API s2504(SISLSurf *, int, int, int, double [], int *, int *, double *, int *);
1041 #ifndef  S2506
1042 extern
1043 #endif
1044 void GO_API s2506(SISLSurf *, int, int, int, double [], int *, int *, double *, int *);
1045 #ifndef  S2508
1046 extern
1047 #endif
1048 void GO_API s2508(SISLSurf *, int, int, int, double [], int *, int *, double *, int *);
1049 #ifndef  S2510
1050 extern
1051 #endif
1052 void GO_API s2510(SISLSurf *, int, int, int, double [], int *, int *, double *, int *);
1053 #ifndef  S2532
1054 extern
1055 #endif
1056 void GO_API s2532(SISLSurf *, int, int, int *, int *, SISLSurf ***, int *);
1057 #ifndef  S2536
1058 extern
1059 #endif
1060 void GO_API s2536(SISLSurf *, int, int, int *, int *, SISLSurf ***, int *);
1061 #ifndef  S2540
1062 extern
1063 #endif
1064 void GO_API s2540(SISLSurf *, int, int, int, double [], int, int, double **, int *);
1065 #ifndef  S2542
1066 extern
1067 #endif
1068 void GO_API s2542(SISLSurf *, int, int, int, double [], int *, int *, double *,
1069 	   double *, double [], double [],int *);
1070 #ifndef  S2544
1071 extern
1072 #endif
1073 void GO_API s2544(SISLSurf *, int, int, int, double [], int *, int *, double *, int *);
1074 #ifndef  S2545
1075 extern
1076 #endif
1077 void GO_API s2545(SISLSurf *, int, int, int, double [], int, int, double, double **,
1078 	   int *);
1079 #ifndef  S2550
1080 extern
1081 #endif
1082 void GO_API s2550(SISLCurve *, double [], int, double [], int *);
1083 #ifndef  S2553
1084 extern
1085 #endif
1086 void GO_API s2553(SISLCurve *, double [], int, double [], int *);
1087 #ifndef  S2556
1088 extern
1089 #endif
1090 void GO_API s2556(SISLCurve *, double [], int, double [], int *);
1091 #ifndef  S2559
1092 extern
1093 #endif
1094 void GO_API s2559(SISLCurve *, double [], int, double [], double [], double [],
1095            double [], int *);
1096 #ifndef  S2562
1097 extern
1098 #endif
1099 void GO_API s2562(SISLCurve *, double [], int, int, double [], double [], double [],
1100            double [], double [], int *);
1101 #ifndef  S6DRAWSEQ
1102 extern
1103 #endif
1104 void GO_API s6drawseq(double [],int);
1105 #ifndef  MAKE_CV_CYCLIC
1106 extern
1107 #endif
1108 void make_cv_cyclic(SISLCurve *,int,int *);
1109 
1110 #else /* not SISLNEEDPROTOTYPES */
1111 
1112 #ifndef CONSTRUCT
1113 extern
1114 #endif
1115 SISLbox       *newbox();
1116 #ifndef CONSTRUCT
1117 extern
1118 #endif
1119 SISLCurve     *newCurve();
1120 #ifndef CONSTRUCT
1121 extern
1122 #endif
1123 SISLCurve     *copyCurve();
1124 #ifndef CONSTRUCT
1125 extern
1126 #endif
1127 SISLdir       *newdir();
1128 #ifndef CONSTRUCT
1129 extern
1130 #endif
1131 SISLIntcurve  *newIntcurve();
1132 #ifndef CONSTRUCT
1133 extern
1134 #endif
1135 SISLSurf      *newSurf();
1136 #ifndef CONSTRUCT
1137 extern
1138 #endif
1139 SISLSurf      *copySurface();
1140 
1141 #ifndef DESTRUCT
1142 extern
1143 #endif
1144 void freeCurve();
1145 #ifndef DESTRUCT
1146 extern
1147 #endif
1148 void freeIntcrvlist();
1149 #ifndef DESTRUCT
1150 extern
1151 #endif
1152 void freeIntcurve();
1153 #ifndef DESTRUCT
1154 extern
1155 #endif
1156 void freeSurf();
1157 #ifndef  S1001
1158 extern
1159 #endif
1160 void s1001();
1161 #ifndef  S1011
1162 extern
1163 #endif
1164 void s1011();
1165 #ifndef  S1012
1166 extern
1167 #endif
1168 void s1012();
1169 #ifndef  S1013
1170 extern
1171 #endif
1172 void s1013();
1173 #ifndef  S1014
1174 extern
1175 #endif
1176 void s1014();
1177 #ifndef  S1015
1178 extern
1179 #endif
1180 void s1015();
1181 #ifndef  S1016
1182 extern
1183 #endif
1184 void s1016();
1185 #ifndef  S1017
1186 extern
1187 #endif
1188 void s1017();
1189 #ifndef  S1018
1190 extern
1191 #endif
1192 void s1018();
1193 #ifndef  S1021
1194 extern
1195 #endif
1196 void s1021();
1197 #ifndef  S1022
1198 extern
1199 #endif
1200 void s1022();
1201 #ifndef  S1023
1202 extern
1203 #endif
1204 void s1023();
1205 #ifndef  S1024
1206 extern
1207 #endif
1208 void s1024();
1209 #ifndef  S1025
1210 extern
1211 #endif
1212 void s1025();
1213 #ifndef  S1221
1214 extern
1215 #endif
1216 void s1221();
1217 #ifndef  S1225
1218 extern
1219 #endif
1220 void s1225();
1221 #ifndef  S1226
1222 extern
1223 #endif
1224 void s1226();
1225 #ifndef  S1227
1226 extern
1227 #endif
1228 void s1227();
1229 #ifndef  S1233
1230 extern
1231 #endif
1232 void s1233();
1233 #ifndef  S1237
1234 extern
1235 #endif
1236 void s1237();
1237 #ifndef  S1238
1238 extern
1239 #endif
1240 void s1238();
1241 #ifndef  S1240
1242 extern
1243 #endif
1244 void s1240();
1245 #ifndef  S1241
1246 extern
1247 #endif
1248 void s1241();
1249 #ifndef  S1243
1250 extern
1251 #endif
1252 void s1243();
1253 #ifndef  S1302
1254 extern
1255 #endif
1256 void s1302();
1257 #ifndef  S1303
1258 extern
1259 #endif
1260 void s1303();
1261 #ifndef  S1310
1262 extern
1263 #endif
1264 void s1310();
1265 #ifndef  S1314
1266 extern
1267 #endif
1268 void s1314();
1269 #ifndef  S1315
1270 extern
1271 #endif
1272 void s1315();
1273 #ifndef  S1316
1274 extern
1275 #endif
1276 void s1316();
1277 #ifndef  S1317
1278 extern
1279 #endif
1280 void s1317();
1281 #ifndef  S1318
1282 extern
1283 #endif
1284 void s1318();
1285 #ifndef  S1319
1286 extern
1287 #endif
1288 void s1319();
1289 #ifndef  S1327
1290 extern
1291 #endif
1292 void s1327();
1293 #ifndef  S1328
1294 extern
1295 #endif
1296 void s1328();
1297 #ifndef  S1332
1298 extern
1299 #endif
1300 void s1332();
1301 #ifndef  S1356
1302 extern
1303 #endif
1304 void s1356();
1305 #ifndef  S1357
1306 extern
1307 #endif
1308 void s1357();
1309 #ifndef  S1360
1310 extern
1311 #endif
1312 void s1360();
1313 #ifndef  S1363
1314 extern
1315 #endif
1316 void s1363();
1317 #ifndef  S1364
1318 extern
1319 #endif
1320 void s1364();
1321 #ifndef  S1365
1322 extern
1323 #endif
1324 void s1365();
1325 #ifndef  S1369
1326 extern
1327 #endif
1328 void s1369();
1329 #ifndef  S1371
1330 extern
1331 #endif
1332 void s1371();
1333 #ifndef  S1372
1334 extern
1335 #endif
1336 void s1372();
1337 #ifndef  S1373
1338 extern
1339 #endif
1340 void s1373();
1341 #ifndef  S1374
1342 extern
1343 #endif
1344 void s1374();
1345 #ifndef  S1375
1346 extern
1347 #endif
1348 void s1375();
1349 #ifndef  S1379
1350 extern
1351 #endif
1352 void s1379();
1353 #ifndef  S1380
1354 extern
1355 #endif
1356 void s1380();
1357 #ifndef  S1383
1358 extern
1359 #endif
1360 void s1383();
1361 #ifndef  S1386
1362 extern
1363 #endif
1364 void s1386();
1365 #ifndef  S1387
1366 extern
1367 #endif
1368 void s1387();
1369 #ifndef  S1388
1370 extern
1371 #endif
1372 void s1388();
1373 #ifndef  S1389
1374 extern
1375 #endif
1376 void s1389();
1377 #ifndef  S1390
1378 extern
1379 #endif
1380 void s1390();
1381 #ifndef  S1391
1382 extern
1383 #endif
1384 void s1391();
1385 #ifndef  S1401
1386 extern
1387 #endif
1388 void s1401();
1389 #ifndef  S1421
1390 extern
1391 #endif
1392 void s1421();
1393 #ifndef  S1422
1394 extern
1395 #endif
1396 void s1422();
1397 #ifndef  S1424
1398 extern
1399 #endif
1400 void s1424();
1401 #ifndef  S1425
1402 extern
1403 #endif
1404 void s1425();
1405 #ifndef  S1439
1406 extern
1407 #endif
1408 void s1439();
1409 #ifndef  S1440
1410 extern
1411 #endif
1412 void s1440();
1413 #ifndef  S1450
1414 extern
1415 #endif
1416 void s1450();
1417 #ifndef  S1451
1418 extern
1419 #endif
1420 void s1451();
1421 #ifndef S1501
1422 extern
1423 #endif
1424 void s1501();
1425 #ifndef S1502
1426 extern
1427 #endif
1428 void s1502();
1429 #ifndef S1503
1430 extern
1431 #endif
1432 void s1503();
1433 #ifndef S1506
1434 extern
1435 #endif
1436 void s1506();
1437 #ifndef S1508
1438 extern
1439 #endif
1440 void s1508();
1441 #ifndef S1510
1442 extern
1443 #endif
1444 void s1510();
1445 #ifndef S1511
1446 extern
1447 #endif
1448 void s1511();
1449 #ifndef S1514
1450 extern
1451 #endif
1452 void s1514();
1453 #ifndef S1515
1454 extern
1455 #endif
1456 void s1515();
1457 #ifndef S1522
1458 extern
1459 #endif
1460 void s1522();
1461 #ifndef S1529
1462 extern
1463 #endif
1464 void s1529();
1465 #ifndef S1530
1466 extern
1467 #endif
1468 void s1530();
1469 #ifndef S1534
1470 extern
1471 #endif
1472 void s1534();
1473 #ifndef S1535
1474 extern
1475 #endif
1476 void s1535();
1477 #ifndef S1536
1478 extern
1479 #endif
1480 void s1536();
1481 #ifndef S1537
1482 extern
1483 #endif
1484 void s1537();
1485 #ifndef S1538
1486 extern
1487 #endif
1488 void s1538();
1489 #ifndef S1539
1490 extern
1491 #endif
1492 void s1539();
1493 #ifndef S1542
1494 extern
1495 #endif
1496 void s1542();
1497 #ifndef  S1600
1498 extern
1499 #endif
1500 void s1600();
1501 #ifndef  S1601
1502 extern
1503 #endif
1504 void s1601();
1505 #ifndef  S1602
1506 extern
1507 #endif
1508 void s1602();
1509 #ifndef  S1603
1510 extern
1511 #endif
1512 void s1603();
1513 #ifndef  S1606
1514 extern
1515 #endif
1516 void s1606();
1517 #ifndef  S1607
1518 extern
1519 #endif
1520 void s1607();
1521 #ifndef  S1608
1522 extern
1523 #endif
1524 void s1608();
1525 #ifndef  S1609
1526 extern
1527 #endif
1528 void s1609();
1529 #ifndef  S1611
1530 extern
1531 #endif
1532 void s1611();
1533 #ifndef  S1613
1534 extern
1535 #endif
1536 void s1613();
1537 #ifndef  S1620
1538 extern
1539 #endif
1540 void s1620();
1541 #ifndef  S1630
1542 extern
1543 #endif
1544 void s1630();
1545 #ifndef  S1706
1546 extern
1547 #endif
1548 void s1706();
1549 #ifndef  S1710
1550 extern
1551 #endif
1552 void s1710();
1553 #ifndef  S1711
1554 extern
1555 #endif
1556 void s1711();
1557 #ifndef  S1712
1558 extern
1559 #endif
1560 void s1712();
1561 #ifndef  S1713
1562 extern
1563 #endif
1564 void s1713();
1565 #ifndef  S1714
1566 extern
1567 #endif
1568 void s1714();
1569 #ifndef  S1715
1570 extern
1571 #endif
1572 void s1715();
1573 #ifndef  S1716
1574 extern
1575 #endif
1576 void s1716();
1577 #ifndef  S1720
1578 extern
1579 #endif
1580 void s1720();
1581 #ifndef  S1730
1582 extern
1583 #endif
1584 void s1730();
1585 #ifndef  S1731
1586 extern
1587 #endif
1588 void s1731();
1589 #ifndef  S1732
1590 extern
1591 #endif
1592 void s1732();
1593 #ifndef  S1733
1594 extern
1595 #endif
1596 void s1733();
1597 #ifndef  S1750
1598 extern
1599 #endif
1600 void s1750();
1601 #ifndef  S1774
1602 extern
1603 #endif
1604 void s1774();
1605 #ifndef  S1775
1606 extern
1607 #endif
1608 void s1775();
1609 #ifndef  S1850
1610 extern
1611 #endif
1612 void s1850();
1613 #ifndef  S1851
1614 extern
1615 #endif
1616 void s1851();
1617 #ifndef  S1852
1618 extern
1619 #endif
1620 void s1852();
1621 #ifndef  S1853
1622 extern
1623 #endif
1624 void s1853();
1625 #ifndef  S1854
1626 extern
1627 #endif
1628 void s1854();
1629 #ifndef  S1855
1630 extern
1631 #endif
1632 void s1855();
1633 #ifndef  S1856
1634 extern
1635 #endif
1636 void s1856();
1637 #ifndef  S1857
1638 extern
1639 #endif
1640 void s1857();
1641 #ifndef  S1858
1642 extern
1643 #endif
1644 void s1858();
1645 #ifndef  S1859
1646 extern
1647 #endif
1648 void s1859();
1649 #ifndef  S1860
1650 extern
1651 #endif
1652 void s1860();
1653 #ifndef  S1870
1654 extern
1655 #endif
1656 void s1870();
1657 #ifndef  S1871
1658 extern
1659 #endif
1660 void s1871();
1661 #ifndef  S1920
1662 extern
1663 #endif
1664 void s1920();
1665 #ifndef  S1921
1666 extern
1667 #endif
1668 void s1921();
1669 #ifndef  S1940
1670 extern
1671 #endif
1672 void s1940();
1673 #ifndef  S1953
1674 extern
1675 #endif
1676 void s1953();
1677 #ifndef  S1954
1678 extern
1679 #endif
1680 void s1954();
1681 #ifndef  S1955
1682 extern
1683 #endif
1684 void s1955();
1685 #ifndef  S1957
1686 extern
1687 #endif
1688 void s1957();
1689 #ifndef  S1958
1690 extern
1691 #endif
1692 void s1958();
1693 #ifndef  S1961
1694 extern
1695 #endif
1696 void s1961();
1697 #ifndef  S1962
1698 extern
1699 #endif
1700 void s1962();
1701 #ifndef  S1963
1702 extern
1703 #endif
1704 void s1963();
1705 #ifndef  S1965
1706 extern
1707 #endif
1708 void s1965();
1709 #ifndef  S1966
1710 extern
1711 #endif
1712 void s1966();
1713 #ifndef  S1967
1714 extern
1715 #endif
1716 void s1967();
1717 #ifndef  S1968
1718 extern
1719 #endif
1720 void s1968();
1721 #ifndef S1986
1722 extern
1723 #endif
1724 void s1986();
1725 #ifndef S1987
1726 extern
1727 #endif
1728 void s1987();
1729 #ifndef S1988
1730 extern
1731 #endif
1732 void s1988();
1733 #ifndef S1989
1734 extern
1735 #endif
1736 void s1989();
1737 #ifndef  S2500
1738 extern
1739 #endif
1740 void s2500();
1741 #ifndef  S2502
1742 extern
1743 #endif
1744 void s2502();
1745 #ifndef  S2504
1746 extern
1747 #endif
1748 void s2504();
1749 #ifndef  S2506
1750 extern
1751 #endif
1752 void s2506();
1753 #ifndef  S2508
1754 extern
1755 #endif
1756 void s2508();
1757 #ifndef  S2510
1758 extern
1759 #endif
1760 void s2510();
1761 #ifndef  S2532
1762 extern
1763 #endif
1764 void s2532();
1765 #ifndef  S2536
1766 extern
1767 #endif
1768 void s2536();
1769 #ifndef  S2540
1770 extern
1771 #endif
1772 void s2540();
1773 #ifndef  S2542
1774 extern
1775 #endif
1776 void s2542();
1777 #ifndef  S2544
1778 extern
1779 #endif
1780 void s2544();
1781 #ifndef  S2545
1782 extern
1783 #endif
1784 void s2545();
1785 #ifndef  S2550
1786 extern
1787 #endif
1788 void s2550();
1789 #ifndef  S2553
1790 extern
1791 #endif
1792 void s2553();
1793 #ifndef  S2556
1794 extern
1795 #endif
1796 void s2556();
1797 #ifndef  S2559
1798 extern
1799 #endif
1800 void s2559();
1801 #ifndef  S2562
1802 extern
1803 #endif
1804 void s2562();
1805 #ifndef  S6DRAWSEQ
1806 extern
1807 #endif
1808 void s6drawseq();
1809 #ifndef  MAKE_CV_CYCLIC
1810 extern
1811 #endif
1812 void make_cv_cyclic();
1813 #endif /* End of forward declarations of sisl top level routines */
1814 
1815 #if defined(__cplusplus)
1816     }
1817 #endif
1818 #endif /* SISL_INCLUDED */
1819 /* DO NOT ADD ANYTHING AFTER THIS LINE */
1820