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 SISLP_INCLUDED
41 #define SISLP_INCLUDED
42 /*
43  * If _SISL_COPYRIGHT_H is defined before sisl-copyright.h is included
44  * then flag this by defining SISL_INTERNAL as we're compiling SISL
45  * library source files. By doing this we can hide internal SISL macros
46  * if this header file is included in external files.
47  * ---------------------------------------------------------------------
48  */
49 #if defined(_SISL_COPYRIGHT_H)
50 #define SISL_INTERNAL 1
51 #endif
52 
53 #include "sisl-copyright.h"
54 
55 #include "sisl.h"
56 /*
57  *
58  * $Id: sislP.h,v 1.56 2009-03-18 13:30:41 vsk Exp $
59  *
60  */
61 
62 #if defined(SISL_ALIGNMENT)
63 #pragma HP_ALIGN NATURAL
64 #endif
65 
66 /* Get size_t */
67 #include <sys/types.h>
68 
69 #if defined(SISL_INTERNAL)
70 
71 /* Get standard I/O library definitions */
72 #include <stdio.h>
73 
74 /* Get standard library definitions (includes malloc defs) */
75 #include <stdlib.h>
76 
77 /* Get  string library definitions (includes memcpy defs) */
78 #include <string.h>
79 
80 /* Get system spesific limits */
81 #include <limits.h>
82 
83 /* Get system spesific values */
84 #ifndef MAXDOUBLE
85 #  define MAXDOUBLE   1.79769313486231570e+308
86 #endif
87 
88 #if defined(_MSC_VER) || defined(__BORLANDC__) || defined(__MINGW32__) || defined(__APPLE__)
89 #  define MAXFLOAT    ((float)3.40282346638528860e+38)
90 #  define MINDOUBLE   2.22507385850720140e-308
91 #  define MINFLOAT    ((float)1.17549435082228750e-38)
92 #  define M_PI        3.14159265358979323846
93 #  define M_PI_2      1.57079632679489661923
94 #  define M_SQRT2     1.41421356237309504880
95 #  define M_SQRT1_2   0.70710678118654752440
96 #endif
97 
98 /* Get floating point limits */
99 #include <float.h>
100 
101 /* Get math library routines definition. */
102 #include <math.h>
103 
104 #endif  /* SISL_INTERNAL */
105 
106 #if !defined(apollo)
107 #if defined(__STDC__)
108 
109 #if !defined(CONST)
110 #define CONST const
111 #endif
112 #define VOIDP      (void *)
113 #define CONSTVOIDP (const void *)
114 
115 #else /* Not __STDC__ */
116 #if !defined(CONST)
117 #define CONST
118 #endif
119 #define VOIDP       (char *)
120 #define CONSTVOIDP  (char *)
121 #endif
122 
123 #else /* apollo */
124 #if !defined(CONST)
125 #define CONST
126 #endif
127 #define VOIDP        (void *)
128 #define CONSTVOIDP   (void *)
129 #endif
130 
131 
132 
133 /* This file contains the definition of the structure SISLPoint
134    The structure is created 18.04.89 by UJK.                           */
135 
136 
137 typedef struct SISLPoint
138 {
139   double ec[3];
140   int idim;			/* The dimension the point lies in           */
141   double *ecoef;		/* Pointer to the array containing the
142 				   coordinates */
143   int icopy;			/* Indicates whether the arrays of the point
144 				   are copied or referenced by creation of
145 				   the point.
146 				   = 0 : Pointer set to input arrays.
147 				   = 1 : Copied.
148 				   = 2 : Pointer set to input arrays,
149 				         but are to be treated as copied.    */
150 
151   SISLbox *pbox;		/*Pointer to a structur to store the boxes.  */
152 } SISLPoint;
153 
154 
155 
156 /* This file contains the definition of the structure SISLObject that contains
157    the description of a geometric object that take part in an intersection
158    problem or in a related problem. SISLObject can represent any geometric
159    structure, but only on at a time.                                   */
160 
161 typedef struct SISLObject
162 {
163   int iobj;			/* Integer indicates which kind of geometric
164 				   object is contained in a particular
165 				   instance of the structure.
166 		                   = 1 (SISLCurve) - curve.
167 		                   = 2 (SURFACE) - tensor-product surface.   */
168   SISLPoint *p1;		/* Pointer to a point (instance of Point).   */
169   SISLCurve *c1;		/* Pointer to a curve
170 				 * (instance of SISLCurve).                  */
171   SISLSurf *s1;			/* Pointer to a surface
172 				 * (instance of SISLSurf).                   */
173   struct SISLObject *o1;	/* Pointer to parent object
174 				 * (instance of Object).                     */
175   struct SISLObject *edg[4];	/* Pointer to objects edges
176 				 * (instance of Object).                     */
177   struct SISLObject *psimple;	/* Indicates if object/object intersection
178 				 * is simple case. */
179 } SISLObject;
180 
181 typedef struct SISLIntsurf
182 {
183   int ipoint;			/* Number of points defining the curve.    */
184   int ipar;			/* Number of parameter directions of       */
185   double *epar;		        /* Pointer to the parameter-values of the
186 				   points, dimension: ipoint*ipar          */
187   int *const_par;               /* Constant parameter direction between
188 				   two points in epar.                     */
189 } SISLIntsurf;
190 
191 
192 typedef struct SISLTrimpar
193 {
194     int ptindex;  /* Index in pnext of pointer to an adjacent point
195 		      in the trim curve. */
196     int parindex;  /* The parameter which is constant along
197 		      the trim curve, between
198                       this point and the ptindex point. */
199 } SISLTrimpar;
200 
201 /* This file contains the description of an intersection point (or
202    closest point or extremal point) found in the recursive part of
203    an intersection routine.                                        */
204 
205 
206 typedef struct SISLIntpt
207 {
208   int ipar;			/* Number of parameter directions in
209 				 * intersection problem.                     */
210   double *epar;			/* Parametervalues of point, possibly in two
211 				 * objects.                                  */
212   double adist;			/* Distance between the objects in this point.
213 				 * tdist is used in closest point problems.  */
214   struct SISLIntpt *pcurve;	/* Not used, kept for compatibility with old
215 			           version on the structure.*/
216   int iinter;			/* = 1 ORDINARY MAIN POINT
217 				   = 2 SINGULAR MAIN POINT
218 				   = 3 TRIM MAIN POINT
219 		                   = -1 ORDINARY HELP POINT
220 				   = -2 SINGULAR HELP POINT
221 				   = -3 TRIM HELP POINT */
222   struct SISLIntpt **pnext;	/* Pointers to next points in each curve
223 				 * chain.                                   */
224   int *curve_dir;		/* An array of curve directions + from - to
225 				 * this point.                              */
226   int no_of_curves;		/* Number of curves containing this point.  */
227   int no_of_curves_alloc;	/* The size of the arrays allocated         */
228   int *left_obj_1;		/* Pretopology information, one for each
229 				 * curve.                                   */
230   int *left_obj_2;		/* Pretopology information, one for each
231 				 * curve.                                   */
232   int *right_obj_1;		/* Pretopology information, one for each
233 				   curve.                                   */
234   int *right_obj_2;		/* Pretopology information, one for each
235 				   curve.                                   */
236   int size_1;			/* Size of geo_data_1                       */
237   int size_2;			/* Size of geo_data_2                       */
238   double *geo_data_1;		/* Containing geometric info first object   */
239   double *geo_data_2;		/* Containing geometric info second object  */
240   /*  double  geo_aux[3]; Containing auxiliary geo info, see sh6idput*/
241   double geo_track_3d[10];	/* To store intersection curve info */
242   double geo_track_2d_1[7];
243   double geo_track_2d_2[7];
244   int edge_1;                   /* Edge flag for topology           */
245   int edge_2;
246   int marker;                   /* Help attribute when creating lists  */
247   int evaluated;                /* Help attribute when creating tracks */
248   struct SISLTrimpar *trim[2];          /* Used if pt is in trim curve. */
249   int iside_1;			/* Left/right evaluator flag.  -1,0+ */
250   int iside_2;			/* Left/right evaluator flag.  -1,0+*/
251 } SISLIntpt;
252 
253 /* This file contains the definition of the structure SISLTrack
254    The structure is created 10.06.91 by UJK.                           */
255 
256 typedef struct SISLTrack
257 {
258   SISLSurf *psurf_1;		/* Pointer to first surface in intersection */
259   SISLSurf *psurf_2;		/* Pointer to second surface in intersection */
260   SISLCurve *pcurve_3d;		/* Pointer to 3D support curve. */
261   SISLCurve *pcurve_2d_1;	/* Pointer to 2D support curve in first
262 				   parameter space. */
263   SISLCurve *pcurve_2d_2;	/* Pointer to 2D support curve in second
264 				   parameter space. */
265   int ideg;			/* Type of track.
266 				    = 0, Bspline vs Bspline
267 				= 1, Bspline vs Plane
268 				= 2, Bspline vs Quadric surface
269 				= 1001 Bspline vs Torus surface
270 				= 1003 Bspline silhouette line, parallel
271 				  projection
272 				= 1004 Bspline silhouette line, perspective
273 				  projection
274 				= 1005 Bspline silhouette line, circular
275 			          projection */
276 
277   double eimpli[16];		/* Description of the implicit surface */
278   int turned;			/* Connection between the direction of the
279 				   support curve and the cross product
280 				   between the two surface normals.
281 				= 0, same direction
282 				= 1, oposite direction */
283   int exact;                    /* Flag if curve is exact */
284   int pretop[4];		/* Pretopology */
285   int sing_start;               /* Singular start end point markers */
286   int sing_end;
287 } SISLTrack;
288 
289 /* This file contains the description of a list connecting points that
290    belong to an intersection curve.                                    */
291 
292 typedef struct SISLIntlist
293 {
294   SISLIntpt *pfirst;		/* Pointer to first point in list. */
295   SISLIntpt *plast;		/* Pointer to last point in list.  */
296   int ind_first;		/* Index pointer in pfirst         */
297   int ind_last;			/* Index pointer in plast          */
298   int itype;			/* Status of curve-segment.
299                                = 0 : open curve, no singularities.
300                                = 1 : closed curve, no singularities.
301                                = 2 : more than two curves meet at start point.
302                                = 3 : more than two curves meet at end point.
303                                = 4 : more than two curves meet at start
304                                      and end point.
305                                = 5 : isolated singularity.
306                                = 6 : touching area of surface.            */
307   int inumb;			/* Number of points in the list.          */
308   int pretop[4];		/* Pretopology */
309 } SISLIntlist;
310 
311 /* This file contains the definition of an element in a list where
312    each element points to an intersection point. The structure is
313    used internally in intersection routines and related routines.   */
314 
315 typedef struct SISLPtedge
316 {
317   SISLIntpt *ppt;		/* Pointer to intersection points.      */
318   struct SISLPtedge *pnext;	/* Pointer to next element in the list. */
319 } SISLPtedge;
320 
321 /* This file contains the definition of the structure keeping
322    track of intersections on edges/endpoints of objects. This
323    structure is used internally in the recursive part of intersection
324    routines and related routines.                                     */
325 
326 typedef struct SISLEdge
327 {
328   int iedge;			/* Number of edges/endpoints of object.      */
329   int ipoint;			/* Number of intersection points found on
330 				 * the edges.                                */
331   SISLPtedge **prpt;		/* Array containing lists of pointers to the
332 			         * intersections at the edges.               */
333 } SISLEdge;
334 
335 /* This file contains the definition of the structure SISLIntdat used
336    intarnally in intersection routines in order to store information
337    in intersection points and curves.                                        */
338 
339 typedef struct SISLIntdat
340 {
341   SISLIntpt **vpoint;
342   int ipoint;
343   int ipmax;
344   SISLIntlist **vlist;
345   int ilist;
346   int ilmax;
347 } SISLIntdat;
348 
349 typedef struct rank_info
350     {
351     int *prio;
352     int *groups;
353     int antgr;
354     int antrem;
355   }rank_info;
356 
357 /* UJK: NEW INTERSECTION STUFF START*/
358 
359 enum
360 {
361   SI_ORD = 1, SI_SING, SI_TRIM, SI_TOUCH
362 };
363 
364 /* UJK: NEW INTERSECTION STUFF END*/
365 
366 #if defined(SISL_INTERNAL)
367 #ifndef HUGE
368 #define HUGE          MAXDOUBLE
369 #endif
370 
371 /* Storage classes. Used in space allocation.  */
372 #define  INT     int
373 #define  DOUBLE  double
374 #endif /* SISL_INTERNAL */
375 
376 /* Name of geometry objects. Used in branching. */
377 #define SISLPOINT    0
378 #define SISLCURVE    1
379 #define SISLSURFACE  2
380 
381 /* The resolution of double precision numbers */
382 #define AEPSGE (double)1.e-6
383 #define AEPSCO (double)0.0
384 
385 #define REL_COMP_RES                   (double)0.000000000000001
386 #define REL_PAR_RES                    (double)0.000000000001
387 #define ANGULAR_TOLERANCE              (double)0.01  /* IN RADIANS */
388 #define MAXIMAL_RADIUS_OF_CURVATURE    (double)10000.0
389 
390 /*
391  * Name of the nullobject, what a pointer points to when
392  * it points to  nothing.
393  */
394 
395 #ifndef SISL_NULL
396 #define SISL_NULL 0
397 #endif
398 
399 /* Name of double 0.0 */
400 
401 #ifndef DZERO
402 #define DZERO (double)0.0
403 #endif
404 
405 #if defined(SISL_INTERNAL)
406 #define ONE_THIRD  (double)0.333333333333333333333333
407 #define ONE_SIXTH  (double)0.166666666666666666666667
408 #define ONE_FOURTH (double)0.25
409 
410 /* Functions taking max/min of two arguments. */
411 
412 #ifndef max
413 #define max(a,b) ((a) > (b) ? (a) : (b))
414 #endif
415 
416 #ifndef min
417 #define min(a,b) ((a) < (b) ? (a) : (b))
418 #endif
419 
420 #ifndef MAX
421 #define MAX max
422 #endif
423 #ifndef MIN
424 #define MIN min
425 #endif
426 
427 /* Macros checking for equality/non-equality  between two double numbers */
428 
429 #define DEQUAL(a,b) \
430   ( (fabs((a) - (b)) <= (REL_PAR_RES * MAX(MAX(fabs(a),fabs(b)),(double)1.0))) ? (1) : (0) )
431 
432 #define DNEQUAL(a,b) \
433   ( (fabs((a) - (b)) >  (REL_PAR_RES * MAX(MAX(fabs(a),fabs(b)),(double)1.0))) ? (1) : (0) )
434 
435 #define ZEROLEN(a) \
436   ( (fabs(a) <= AEPSGE) ? (1) : (0) )
437 
438 /* Space allocation.  */
439 
440 #if defined(SISL_INTERNAL) || defined(USING_SISL_NEWARRAY)
441 
442 #define newarray(a,b) \
443   ((a)>(SISL_NULL)?((b*)malloc((size_t)((a)*sizeof(b)))):(SISL_NULL))
444 
445 #define new0array(a,b) \
446   ((a)>(SISL_NULL)?((b*)calloc((size_t)(a),(size_t)(sizeof(b)))):(SISL_NULL))
447 
448 #define increasearray(a,b,c) (c*)realloc(VOIDP(a),(size_t)((b)*sizeof(c)))
449 
450 #define freearray(a) { (void)free(VOIDP a); a = SISL_NULL; }
451 
452 #define free0array(a) { (void)free(VOIDP a); a = SISL_NULL; }
453 
454 
455 /* Copying of arrays   */
456 
457 #define memcopy(a,b,c,d) \
458   VOIDP memcpy(VOIDP (a),CONSTVOIDP(b),(size_t)((c)*sizeof(d)))
459 
460 /* Zero out an array   */
461 
462 #define memzero(a,b,c) \
463   VOIDP memset(VOIDP (a),0,(size_t)((b)*sizeof(c)))
464 
465 #endif /* SISL_INTERNAL || USING_SISL_NEWARRAY */
466 
467 /* Set value of PI/2, PI, 3PI/2 and 2PI */
468 
469 #ifndef PIHALF
470 #define PIHALF       (double)M_PI_2
471 #endif
472 #ifndef PI
473 #define PI           (double)M_PI
474 #endif
475 /* #ifndef PIHALF
476    #define PIHALF       (double)1.57079632679489661923
477    #endif
478    #ifndef PI
479    #define PI           (double)3.14159265358979323846
480    #endif                            */
481 #ifndef THREEPIHALF
482 #define THREEPIHALF  (double)4.71238898038468985769
483 #endif
484 #ifndef TWOPI
485 #define TWOPI        (double)6.28318530717958647692
486 #endif
487 #ifndef ROTM
488 /* #define ROTM         (double)0.70710678118654752440 */
489 #define ROTM         (double)M_SQRT1_2
490 #endif
491 #ifndef SIMPLECASE
492 #define SIMPLECASE   (double)0.75
493 #endif
494 
495 /* Values of logicals */
496 
497 #ifndef TRUE
498 #define TRUE 1
499 #endif
500 #ifndef FALSE
501 #define FALSE 0
502 #endif
503 #endif          /* SISL_INTERNAL */
504 
505 
506 /*
507  * --------------------------------------------------------------
508  * Forward declarations of all sisl low-level routines, all in C.
509  * --------------------------------------------------------------
510  */
511 
512 #if defined(__cplusplus)
513     extern "C" {
514 #endif
515 #if defined(SISLNEEDPROTOTYPES)
516 
517 #ifndef CONSTRUCT
518 extern
519 #endif
520 SISLIntpt    *copyIntpt(SISLIntpt *);
521 #ifndef CONSTRUCT
522 extern
523 #endif
524 SISLEdge     *newEdge(int);
525 #ifndef CONSTRUCT
526 extern
527 #endif
528 SISLIntdat   *newIntdat(void);
529 #ifndef CONSTRUCT
530 extern
531 #endif
532 SISLIntlist  *newIntlist(SISLIntpt *,SISLIntpt *,int);
533 #ifndef CONSTRUCT
534 extern
535 #endif
536 SISLIntpt    *newIntpt(int,double *,double);
537 #ifndef CONSTRUCT
538 extern
539 #endif
540 SISLObject   *newObject(int);
541 #ifndef CONSTRUCT
542 extern
543 #endif
544 SISLPoint    *newPoint(double *,int,int);
545 #ifndef CONSTRUCT
546 extern
547 #endif
548 SISLPtedge   *newPtedge(SISLIntpt *);
549 #ifndef CONSTRUCT
550 extern
551 #endif
552 SISLIntsurf  *newIntsurf(SISLIntlist *);
553 #ifndef CONSTRUCT
554 extern
555 #endif
556 SISLTrack    *newTrack(SISLSurf *,SISLSurf *,SISLCurve *,SISLCurve *,
557 		       SISLCurve *,int,double[],int,int,int);
558 #ifndef CONSTRUCT
559 extern
560 #endif
561 SISLTrimpar  *newTrimpar(int,int);
562 #ifndef CONSTRUCT
563 extern
564 #endif
565 SISLIntpt    *hp_newIntpt(int,double *,double,int,int,int,int,int,
566 			  int,int,double [],double []);
567 #ifndef CONSTRUCT
568 extern
569 #endif
570 SISLIntpt    *hp_copyIntpt(SISLIntpt *);
571 #ifndef CONSTRUCT
572 extern
573 #endif
574 SISLSegmentation *newSegmentation(double *segmentation,
575 					 int *type, int nseg);
576 #ifndef DESTRUCT
577 extern
578 #endif
579 void freeEdge(SISLEdge *);
580 #ifndef DESTRUCT
581 extern
582 #endif
583 void freeIntdat(SISLIntdat *);
584 #ifndef DESTRUCT
585 extern
586 #endif
587 void freeIntlist(SISLIntlist *);
588 #ifndef DESTRUCT
589 extern
590 #endif
591 void freeIntpt(SISLIntpt *);
592 #ifndef DESTRUCT
593 extern
594 #endif
595 void freeObject(SISLObject *);
596 #ifndef DESTRUCT
597 extern
598 #endif
599 void freePoint(SISLPoint *);
600 #ifndef DESTRUCT
601 extern
602 #endif
603 void freePtedge(SISLPtedge *);
604 #ifndef DESTRUCT
605 extern
606 #endif
607 void freeIntsurf(SISLIntsurf *);
608 #ifndef DESTRUCT
609 extern
610 #endif
611 void freeTrimpar(SISLTrimpar *);
612 #ifndef DESTRUCT
613 extern
614 #endif
615 void freeTrack(SISLTrack * ptrack);
616 #ifndef DESTRUCT
617 extern
618 #endif
619 void freeSegmentation(SISLSegmentation *);
620 #ifndef MAKE3D
621 extern
622 #endif
623 void make3D(SISLSurf *, SISLSurf **, int *);
624 #ifndef S1119
625 extern
626 #endif
627 void s1119(double *,double *,double *,int,int,int,int,int *,int *,int *,int *);
628 #ifndef S1161
629 extern
630 #endif
631 void s1161(SISLObject *,double *,double ,SISLIntdat **,int *);
632 #ifndef S1162
633 extern
634 #endif
635 void s1162(SISLObject *,double *,double,SISLIntdat **,SISLEdge *[2],int,
636 	   int,int *);
637 #ifndef S1172
638 extern
639 #endif
640 void s1172(SISLCurve *,double,double,double,double *,int *);
641 #ifndef S1173
642 extern
643 #endif
644 void s1173(SISLPoint *,SISLSurf *,double,double [],double [],double [],
645 	   double [],int *);
646 #ifndef S1174
647 extern
648 #endif
649 void s1174(SISLSurf *,double [],double [],double [],double [],int *);
650 #ifndef S1190
651 extern
652 #endif
653 void s1190(SISLObject *, double *, double, int *);
654 #ifndef  S1192
655 extern
656 #endif
657 void s1192(SISLObject *, double, int *);
658 #ifndef  S1219
659 extern
660 #endif
661 void s1219(double *,int,int,int *,double,int *);
662 #ifndef  S1220
663 extern
664 #endif
665 void s1220(double *,int,int,int *,double,int,double [],int *);
666 #ifndef  S1222
667 extern
668 #endif
669 void s1222(double *,int,int,int,double,int,double [],int *);
670 #ifndef  S1223
671 extern
672 #endif
673 void s1223(double [],double [],int,int,int,int,int,int,double [],
674 	   int,int,double [],int *);
675 #ifndef  S1224
676 extern
677 #endif
678 void s1224(double [],double [],int,int,int,int,int, int,double [],int,
679 	   double [],int *);
680 #ifndef  S1231
681 extern
682 #endif
683 void s1231(SISLCurve *,double,SISLCurve **,SISLCurve **,int *);
684 #ifndef  S1232
685 extern
686 #endif
687 void s1232(double [],int,int,double,double,double [],int *);
688 #ifndef  S1235
689 extern
690 #endif
691 void s1235(double [],int,int,int *,double **,int *);
692 #ifndef  S1236
693 extern
694 #endif
695 void s1236(double [],int,int,int,double [],int *);
696 #ifndef  S1239
697 extern
698 #endif
699 void s1239(SISLCurve *,int,double,SISLCurve *,double,double,SISLCurve **,
700 	   int,int *,int *);
701 #ifndef  S1244
702 extern
703 #endif
704 void s1244(double [],int,int,int,int,int,int,double *,int *);
705 #ifndef  S1245
706 extern
707 #endif
708 void s1245(double [],int,int,double [],double,int,double [],double *,
709            double *,int *);
710 #ifndef  S1251
711 extern
712 #endif
713 void s1251(SISLCurve *,double,double *,int *);
714 #ifndef  S1252
715 extern
716 #endif
717 void s1252(SISLCurve *,double,double,double *,int *);
718 #ifndef S1291
719 extern
720 #endif
721 void s1291(double cvder[], double sfder[], int idim, double cvder2[],
722 	   int *jstat);
723 #ifndef  S1301
724 extern
725 #endif
726 void s1301(double,double,int,SISLCurve **,int *);
727 #ifndef  S1304
728 extern
729 #endif
730 void s1304(double [],double [],double [],double [],
731 	   double [],double [],double [],int *);
732 #ifndef  S1305
733 extern
734 #endif
735 void s1305(double [],double [],double [],double [],int *,double [],int *);
736 #ifndef  S1306
737 extern
738 #endif
739 void s1306(double [],double [],double [],int,double [],double [],int *);
740 #ifndef  S1307
741 extern
742 #endif
743 void s1307(double [],int,double [],int *);
744 #ifndef  S1308
745 extern
746 #endif
747 void s1308(double [],int,double [],int,double [],int *);
748 #ifndef  S1309
749 extern
750 #endif
751 double s1309(double [],double [],double [],int,int *);
752 #ifndef  S1311
753 extern
754 #endif
755 double s1311(double,double,double,int *);
756 #ifndef  S1312
757 extern
758 #endif
759 void s1312(double [],int,int,int,double [],SISLCurve **,int *);
760 #ifndef  S1313
761 extern
762 #endif
763 void s1313(SISLSurf *,double [],int,double,double,double,
764 	   SISLIntcurve *,int,int,int *);
765 #ifndef  S1320
766 extern
767 #endif
768 void s1320(SISLSurf *,double [],int,int,SISLSurf **,int *);
769 #ifndef  S1321
770 extern
771 #endif
772 void s1321(double [],double,int,int,double [],int *);
773 #ifndef  S1322
774 extern
775 #endif
776 void s1322(double [],double [],double,int,int,double [],int *);
777 #ifndef  S1323
778 extern
779 #endif
780 void s1323(double [],double [],double [],int,int,double [],int *);
781 #ifndef  S1324
782 extern
783 #endif
784 void s1324(double [],double,double [],int,double [],int *);
785 #ifndef  S1325
786 extern
787 #endif
788 double s1325(double,double);
789 #ifndef  S1329
790 extern
791 #endif
792 void s1329(SISLSurf *,double [],double [],int,SISLSurf **,int *);
793 #ifndef  S1330
794 extern
795 #endif
796 void s1330(double [],double [],double [],double [],double [],double [],
797 	   double [],double [],int *,double [],double [],int *);
798 #ifndef  S1331
799 extern
800 #endif
801 void s1331(double [],double [],int,int,double [],double [],int *);
802 #ifndef  S1333
803 extern
804 #endif
805 void s1333(int,SISLCurve *[],int [],double,int,int,int,SISLSurf **,
806 	   double **,int *);
807 #ifndef  S1333_COUNT
808 extern
809 #endif
810 void s1333_count(int,SISLCurve *[],int *,int *);
811 #ifndef  S1333_CYCLIC
812 extern
813 #endif
814 void s1333_cyclic(SISLSurf *,int,int *);
815 #ifndef  S1334
816 extern
817 #endif
818 void s1334(double [],int,int,double [],int,int,int,int,double,
819 	   double *,SISLCurve **,double **,int *,int *);
820 #ifndef  S1340
821 extern
822 #endif
823 void s1340(SISLCurve *,double [],int,int,double,int,SISLCurve **,
824 	   double [],int *);
825 #ifndef  S1341
826 extern
827 #endif
828 void s1341(double [],int,int,int,double [],double [],int,int,
829 	   double,double,int,int,SISLCurve **,double [],int *);
830 #ifndef  S1342
831 extern
832 #endif
833 void s1342(double [],double [],int,int,int,double [],
834 	   double [],int,int,double,int,SISLCurve **,double [],int *);
835 #ifndef  S1343
836 extern
837 #endif
838 void s1343(SISLCurve *,double [],int,int,double,int,SISLCurve **,int *);
839 #ifndef  S1345
840 extern
841 #endif
842 void s1345(SISLSurf *,double [],int [],double [],double,int,int,
843 	   SISLSurf **,double [],int *);
844 #ifndef  S1346
845 extern
846 #endif
847 void s1346(double [],int,int,int,int,double [],double [],double [],
848 	   int [],double [],double,double,int,int,int,int,
849 	   SISLSurf **,double [],int *);
850 #ifndef  S1347
851 extern
852 #endif
853 void s1347(double [],double [],double [],double [],int,int,int,int,
854 	   double [],double [],double [],int [],double [],double,int,
855 	   int,SISLSurf **,double [],int *);
856 #ifndef  S1348
857 extern
858 #endif
859 void s1348(SISLSurf *,double [],int [],double [],double,int,int,
860 	   SISLSurf **,int *);
861 #ifndef  S1349
862 extern
863 #endif
864 void s1349(int,SISLCurve *[],int *);
865 #ifndef  S1350
866 extern
867 #endif
868 void s1350(double [],double [],int,int,int,SISLCurve **,int *);
869 #ifndef  S1351
870 extern
871 #endif
872 void s1351(double [],int,int,int,int,SISLCurve **,int *);
873 #ifndef  S1352
874 extern
875 #endif
876 void  s1352(double [],int,int,double [],double [],
877 	    double [],int,int,int,double [],int *);
878 #ifndef  S1353
879 extern
880 #endif
881 void s1353(SISLCurve *,double [],rank_info *,int *);
882 #ifndef  S1354
883 extern
884 #endif
885 void s1354(SISLCurve *,SISLCurve *,rank_info *,double [],
886 	   double [],int,int,int,int,SISLCurve **,double [],int *);
887 #ifndef  S1355
888 extern
889 #endif
890 void s1355(SISLCurve *,double [],double **,int *,int *);
891 #ifndef  S1358
892 extern
893 #endif
894 void s1358(double [],int,int,double [],double [],int,int,int,int,double,
895 	   double *,SISLCurve **,double **,int *,int *);
896 #ifndef  S1359
897 extern
898 #endif
899 void s1359(double [],double,int,int,int,double [],SISLCurve **,int *);
900 #ifndef  S1361
901 extern
902 #endif
903 void s1361(double [],double [],int,double [],double [],int *);
904 #ifndef  S1362
905 extern
906 #endif
907 void s1362(SISLCurve *,double,double [],int,int,double,int *,double [],int *);
908 #ifndef S1366
909 extern
910 #endif
911 void s1366(SISLSurf *,double,double,double,int,
912 	   double *,int,int,double *,int,int,SISLSurf **,int *);
913 #ifndef S1367
914 extern
915 #endif
916 void s1367(SISLSurf *,double,double,int,double [],
917 	   int,int *,int *,double [],int *);
918 #ifndef  S1370
919 extern
920 #endif
921 void s1370(SISLCurve *,double [],int,int,int,SISLCurve **,int *);
922 #ifndef  S1376
923 extern
924 #endif
925 void s1376(double [],int,int,double **,int *,int *,int *);
926 #ifndef  S1377
927 extern
928 #endif
929 void s1377(SISLCurve *,double [],int,int,SISLCurve **,int *);
930 #ifndef  S1378
931 extern
932 #endif
933 void s1378(SISLSurf *,double [],int,int,SISLSurf **,int *);
934 #ifndef  S1381
935 extern
936 #endif
937 void s1381(double [],int,int,double **,int *,int,int *);
938 #ifndef  S1382
939 extern
940 #endif
941 void s1382(SISLSurf *,double [],int,SISLSurf **,int *);
942 #ifndef  S1384
943 extern
944 #endif
945 void s1384(SISLCurve *,SISLSurf *,int,int,double,int *,int *,int *,double [],
946 	   double [],double [],double [],int *);
947 #ifndef  S1385
948 extern
949 #endif
950 void s1385(double [],double [],double [],double,int,double,SISLCurve **,int *);
951 #ifndef  S1393
952 extern
953 #endif
954 void s1393(int,SISLCurve *[],SISLCurve *[],SISLCurve *[],int *);
955 #ifndef  S1399
956 extern
957 #endif
958 void s1399(SISLCurve *,double,double);
959 #ifndef  S1435
960 extern
961 #endif
962 void s1435(SISLSurf *,int,SISLCurve **,double *,int *);
963 #ifndef  S1436
964 extern
965 #endif
966 void s1436(SISLSurf *,double,SISLCurve **,int *);
967 #ifndef  S1437
968 extern
969 #endif
970 void s1437(SISLSurf *,double,SISLCurve **,int *);
971 #ifndef  S1438
972 extern
973 #endif
974 void s1438(SISLCurve  *,int,SISLPoint **,double *,int *);
975 #ifndef  S1452
976 extern
977 #endif
978 void s1452(SISLSurf *,double,double,SISLSurf **,int *);
979 #ifndef S1500
980 extern
981 #endif
982 void s1500(double [],double [],double [],double,double,int,int,
983 	   double [],int *);
984 #ifndef S1504
985 extern
986 #endif
987 void s1504(double *,int,int,double *,int,int,double [],int [],int *);
988 #ifndef S1505
989 extern
990 #endif
991 void s1505(const SISLSurf *,int,int,int,double *,double *, int *,
992            int *,double [],double [],int *);
993 #ifndef S1507
994 extern
995 #endif
996 void s1507(SISLCurve **, int, int, SISLCurve ***, int *);
997 #ifndef S1512
998 extern
999 #endif
1000 void s1512(SISLSurf *,double [],int,SISLSurf **,int *);
1001 #ifndef S1513
1002 extern
1003 #endif
1004 void s1513(SISLSurf *,double [],double [],int,SISLSurf **,int *);
1005 #ifndef S1516
1006 extern
1007 #endif
1008 void s1516(double [],double [],int,int,double **,int *);
1009 #ifndef S1517
1010 extern
1011 #endif
1012 void s1517(double [],double [],double [],int,double,double **,int *);
1013 #ifndef  S1520
1014 extern
1015 #endif
1016 void s1520(SISLCurve *,double,double [],double [],SISLSurf **,int *);
1017 #ifndef S1521
1018 extern
1019 #endif
1020 SISLCurve* s1521(SISLCurve *,int *);
1021 #ifndef S1528
1022 extern
1023 #endif
1024 void s1528(int,int,int,double [],int,int,int,double **,double **,int *);
1025 #ifndef S1531
1026 extern
1027 #endif
1028 void s1531(double [],int,int,int,double **,int *);
1029 #ifndef S1540
1030 extern
1031 #endif
1032 void s1540(double [], int, int, double [], int, int, double [], int [], int *);
1033 #ifndef S1541
1034 extern
1035 #endif
1036 void s1541(SISLCurve *, int, double [], int [], double [], int *);
1037 #ifndef  S1604
1038 extern
1039 #endif
1040 void s1604(double [],int,double,int,int,int,SISLCurve **,int *);
1041 #ifndef  S1605
1042 extern
1043 #endif
1044 void s1605(SISLCurve *,double,double **,int *,int *);
1045 #ifndef  S1612
1046 extern
1047 #endif
1048 void s1612(SISLCurve *,double,double **,int *,int *,int *);
1049 #ifndef  S1613BEZ
1050 extern
1051 #endif
1052 void s1613bez(SISLCurve *,int,double,double **,int *,int *);
1053 #ifndef S1614
1054 extern
1055 #endif
1056 void s1614(double [],int,int,int [],double [],int *,int [],int *);
1057 #ifndef S1615
1058 extern
1059 #endif
1060 void s1615(double [],int,int,int [],int *);
1061 #ifndef S1616
1062 extern
1063 #endif
1064 void s1616(double [],int,int,int [],double [],int *);
1065 #ifndef S1617
1066 extern
1067 #endif
1068 void s1617(double [],int,int,int [],double,double [],
1069            double [],double [],double [],double *,int *);
1070 #ifndef S1618
1071 extern
1072 #endif
1073 void s1618(double [],double [],double[],int,double *);
1074 #ifndef S1619
1075 extern
1076 #endif
1077 void s1619(double [],int,int,int [],double [],int,double[],double *, int *);
1078 #ifndef  S1700
1079 extern
1080 #endif
1081 void s1700(int,int,int,int,int *,int *,int *,double *,double,double *,int *);
1082 #ifndef  S1701
1083 extern
1084 #endif
1085 void s1701(int,int,int,int,int *,int *,int *,
1086 	   double *,double *,double *,double *,int *);
1087 #ifndef  S1705
1088 extern
1089 #endif
1090 void s1705(SISLCurve *,int *);
1091 #ifndef  S1707
1092 extern
1093 #endif
1094 void s1707(SISLCurve *,int *);
1095 #ifndef  S1708
1096 extern
1097 #endif
1098 void s1708(SISLSurf *,int *);
1099 #ifndef  S1741
1100 extern
1101 #endif
1102 void s1741(SISLObject *,SISLObject *,double,int *);
1103 #ifndef S1753
1104 extern
1105 #endif
1106 void
1107 s1753(double [],double [],int,int,int,double [],double [],int,
1108       double [],double [],int *);
1109 #ifndef S1754
1110 extern
1111 #endif
1112 void
1113 s1754(double *,int,int,int,double **,int *,int *);
1114 #ifndef S1755
1115 extern
1116 #endif
1117 void
1118 s1755(double [],int,int,double [],int *,int *);
1119 #ifndef  S1770
1120 extern
1121 #endif
1122 void s1770(SISLCurve *,SISLCurve *,double,double,double,double,double,
1123 	   double,double,double *,double *,int *);
1124 #ifndef  S1770_2D
1125 extern
1126 #endif
1127    void s1770_2D(SISLCurve *,SISLCurve *,double,double,double,double,double,
1128 		 double,double,double *,double *,int *);
1129 #ifndef  S1771
1130 extern
1131 #endif
1132 void s1771(SISLPoint *,SISLCurve *,double,double,double,double,double *,int *);
1133 #ifndef  S1772
1134 extern
1135 #endif
1136 void s1772(SISLCurve *,SISLSurf *,double,double,double [],double,double [],
1137 	   double,double [],double *,double [],int *);
1138 #ifndef  S1773
1139 extern
1140 #endif
1141 void s1773(SISLPoint *,SISLSurf *,double,double [],double [],double [],
1142 	   double [],int *);
1143 #ifndef  S1780
1144 extern
1145 #endif
1146 void s1780(SISLCurve *,SISLCurve *,SISLIntpt *[],int *);
1147 #ifndef  S1785
1148 extern
1149 #endif
1150 void s1785(SISLCurve *,SISLSurf *,double,double [],double [],int,int *);
1151 #ifndef  S1786
1152 extern
1153 #endif
1154 void s1786(SISLCurve *,SISLCurve *,double,double [],double [],int *);
1155 #ifndef  S1787
1156 extern
1157 #endif
1158 void s1787(SISLSurf *,double,double,double [],double [],double [],int *);
1159 #ifndef  S1788
1160 extern
1161 #endif
1162 void s1788(SISLSurf *,SISLSurf *,double,double [],double [],double [],int *);
1163 #ifndef  S1789
1164 extern
1165 #endif
1166 void s1789(SISLPoint *,SISLSurf *,double ,double [],double [],int *);
1167 #ifndef  S1790
1168 extern
1169 #endif
1170 void s1790(SISLObject *,SISLObject *,double,int *);
1171 #ifndef  S1791
1172 extern
1173 #endif
1174 int s1791(double [],int,int);
1175 #ifndef  S1792
1176 extern
1177 #endif
1178 double s1792(double [],int,int);
1179 #ifndef  S1795
1180 extern
1181 #endif
1182 void s1795(SISLSurf *,SISLSurf *,double,double,int *);
1183 #ifndef  S1796
1184 extern
1185 #endif
1186 void s1796(SISLCurve *,SISLCurve *,double,double,int *);
1187 #ifndef  S1797
1188 extern
1189 #endif
1190 void s1797(SISLSurf *,SISLCurve *,double,double,int *);
1191 #ifndef  S1830
1192 extern
1193 #endif
1194 void s1830(SISLSurf *,SISLCurve *,int *);
1195 #ifndef  S1834
1196 extern
1197 #endif
1198 void s1834(double [],int,double [],int,int,double [],double [],int *);
1199 #ifndef  S1839
1200 extern
1201 #endif
1202 void s1839(SISLSurf *,double [],int,int,int *);
1203 #ifndef  S1840
1204 extern
1205 #endif
1206 void s1840(SISLCurve *,double *,int *);
1207 #ifndef  S1880
1208 extern
1209 #endif
1210 void s1880(int,int,int *,SISLIntpt **,int *,SISLIntlist **,
1211 	   int *,double **,double **,int *,SISLIntcurve ***,int *);
1212 #ifndef S1890
1213 extern
1214 #endif
1215 void
1216 s1890(double [],int,int,double *[],int *[],int *);
1217 #ifndef S1891
1218 extern
1219 #endif
1220 void
1221 s1891(double [],double [],int,int,int,int [],int,double [],
1222       double *[],int *,int,int,int,int *);
1223 #ifndef S1893
1224 extern
1225 #endif
1226 void
1227 s1893(SISLCurve *,double [],int,int,int,int,SISLCurve **,int *);
1228 #ifndef S1894
1229 extern
1230 #endif
1231 void
1232 s1894(double [],int,int,int,int,double [],int,int,double *[],int *,
1233       int *,int *);
1234 #ifndef S1896
1235 extern
1236 #endif
1237 void
1238 s1896(SISLSurf *,double [],int,int,int [],int [],int [],int [],SISLSurf **,int *);
1239 #ifndef S1897
1240 extern
1241 #endif
1242 void
1243 s1897(double [],int,double,int,int,double [],int *);
1244 #ifndef S1900
1245 extern
1246 #endif
1247 void
1248 s1900(double [],double [],double [],int [],int,int,int,int,
1249       double *,SISLCurve **,double **,int *,int *);
1250 #ifndef S1901
1251 extern
1252 #endif
1253 void
1254 s1901(void (*)(double[],int[],int,int,int,double,double *,
1255 	       double *[],double *[],int *),
1256       void (*)(double[],int,int,int,double *[],int *),
1257       double [],int [],int,double,int,int,int,
1258       double *,SISLCurve **,double **,int *,int *);
1259 #ifndef S1902
1260 extern
1261 #endif
1262 void
1263 s1902(double [],int,int,int,double *[],int *);
1264 #ifndef S1903
1265 extern
1266 #endif
1267 void
1268 s1903(double [],int,int,int,double *[],int *);
1269 #ifndef S1904
1270 extern
1271 #endif
1272 void
1273 s1904(double [],int,int,int,double *[],int *);
1274 #ifndef S1905
1275 extern
1276 #endif
1277 void
1278 s1905(double [],int [],int,int,int,int,double **,int **,int *,int *);
1279 #ifndef S1906
1280 extern
1281 #endif
1282 void
1283 s1906(double *,int *,int,int,int,int,double **,int **,int *,int *);
1284 #ifndef S1907
1285 extern
1286 #endif
1287 void
1288 s1907(double *,int *,double *,int,int,int,int,int,
1289       double *[],int *[],double *[],int *,int *);
1290 #ifndef S1908
1291 extern
1292 #endif
1293 void
1294 s1908(double [],int [],double [],int,int,int,int,
1295       double *[],int *[],double *[],int *,int *);
1296 #ifndef S1909
1297 extern
1298 #endif
1299 void
1300 s1909(double [],int [],int,int,int,double,double *,double *[],
1301       double *[],int *);
1302 #ifndef S1910
1303 extern
1304 #endif
1305 void
1306 s1910(double [],int [],int,int,int,double,double *,double *[],
1307       double *[],int *);
1308 #ifndef S1911
1309 extern
1310 #endif
1311 void
1312 s1911(double [],int [],int,int,int,double,double *,double *[],
1313       double *[],int *);
1314 #ifndef S1912
1315 extern
1316 #endif
1317 void
1318 s1912(void (*)(double[],int[],int,int,int,double,double *,
1319 	       double *[],double *[],int *),
1320       void (*)(double[],int,int,int,double *[],int *),
1321       double [],int [],int,double,int,int,int,
1322       double *,SISLCurve **,double **,int *,int *);
1323 #ifndef S1916
1324 extern
1325 #endif
1326 void
1327 s1916(int,double [],double [],int,int,int,int,double [],int [],int *);
1328 #ifndef S1917
1329 extern
1330 #endif
1331 void
1332 s1917(int,double [],int,int,int [],double,int,double *[],int *[],int *i,int *);
1333 #ifndef S1918
1334 extern
1335 #endif
1336 void
1337 s1918(int,double [],double [],int,int,int,double [],int [],int *);
1338 #ifndef S1919
1339 extern
1340 #endif
1341 void
1342 s1919(double [],double [],double [],double [],double [],int,int,int,int,int,
1343       double,double,double,int *);
1344 #ifndef S1924
1345 extern
1346 #endif
1347 void
1348 s1924(int,int,int,int,int,int,double **,int *);
1349 #ifndef S1925
1350 extern
1351 #endif
1352 void
1353 s1925(double [],double [],int,int [],double [],double [],int,int,int,int,
1354       double [],int,int [],double [],int,double [],int,int *);
1355 #ifndef S1926
1356 extern
1357 #endif
1358 void
1359 s1926(double *,int,int,int *,double *,int,double *,int,int *);
1360 #ifndef S1927
1361 extern
1362 #endif
1363 void
1364 s1927(double *,int,int,int *,double *,int,double *,int,double *[],
1365       double *,int *);
1366 #ifndef S1930
1367 extern
1368 #endif
1369 void
1370 s1930(int,SISLCurve **,double **,double **,int *,int *,int *);
1371 #ifndef S1931
1372 extern
1373 #endif
1374 void
1375 s1931(int,SISLCurve **,double **,double **,int *,int *,int *);
1376 #ifndef S1931UNIT
1377 extern
1378 #endif
1379 void s1931unit (int,SISLCurve **,double **,double **,int *,int *,int *);
1380 #ifndef S1932
1381 extern
1382 #endif
1383 void
1384 s1932(int,SISLCurve **,double,double,double *,int,int,double **,int *);
1385 #ifndef S1933
1386 extern
1387 #endif
1388 void
1389 s1933(int,SISLCurve *[],double,double,double **,int *,int *,int *);
1390 #ifndef S1934
1391 extern
1392 #endif
1393 void
1394 s1934(double *,int,int,double,double,int *);
1395 #ifndef S1935
1396 extern
1397 #endif
1398 void
1399 s1935(double *,int,double *,int,double *[],int *,int,int *);
1400 #ifndef S1936
1401 extern
1402 #endif
1403 void
1404 s1936(SISLCurve *,double [],int,double *,int *);
1405 #ifndef S1937
1406 extern
1407 #endif
1408 void
1409 s1937(double [],int,int,int,double [],double []);
1410 #ifndef S1938
1411 extern
1412 #endif
1413 void
1414 s1938(SISLSurf *,double [],int,double [],int,double **,int *);
1415 #ifndef S1941
1416 extern
1417 #endif
1418 void
1419 s1941(SISLCurve *pcurve,int icont,int *jstat);
1420 #ifndef S1942
1421 extern
1422 #endif
1423 void s1942(SISLCurve *pc1,SISLCurve *pc2,int idim,double ea[],int nstart[],
1424              int nstop[],double emxerr[],double el2err[],int *jstat);
1425 #ifndef S1943
1426 extern
1427 #endif
1428 void
1429    s1943(SISLCurve *pcurve,double etau[],int ik,int in,int ileftfix,
1430              int irightfix,int incont,SISLCurve **rnewcurve,
1431              double gmaxerr[],double gl2err[],int *jstat);
1432 #ifndef S1944
1433 extern
1434 #endif
1435 void
1436    s1944(double etau[],int ik,int in,int idim,double et[],double ed[],
1437              int im,int inlc,int inlr,int inorm,double ea[],double ew1[],
1438              int nfirst[],int nlast[],double eb[],double ew2[],
1439              int n2sta[],double ec[],int *jstat);
1440 #ifndef S1945
1441 extern
1442 #endif
1443 void
1444    s1945(double etau[],int ik,int in,int idim,double et[],
1445              double ed[],int im,int ilend,int irend, int inlc,
1446              int inlr, int inorm, double ea[], double ew1[], int inh,
1447              int nfirst[],int nlast[],double eb[],
1448              double ew2[], double ec[],int n2sta[],int *jstat);
1449 #ifndef S1946
1450 extern
1451 #endif
1452 void
1453    s1946(double ea[],double ew1[],int nfirst[],int nlast[],double ed[],
1454          double ec[],int ik,int in,int im,int idim,int ilend,int irend,
1455          int inlr, int inlc,int *jstat);
1456 #ifndef S1947
1457 extern
1458 #endif
1459 void
1460    s1947(double ea[], int nfirst[], int nlast[], int ik, int im,
1461          double etau[], int in, int incont, double ew[], int inlr,
1462          int *jnred, double efac[], int *jstat);
1463 #ifndef S1948
1464 extern
1465 #endif
1466 void
1467    s1948(double *ea,double *ew,int in,int ik,int inlr,
1468          int *nstart,int *jstat);
1469 #ifndef S1949
1470 extern
1471 #endif
1472 void
1473    s1949(double *ea,double *ew,double *eb,int in,int ik,int inlr,
1474          int idim,int *nstart,int *jstat);
1475 #ifndef S1950
1476 extern
1477 #endif
1478 void s1950(SISLCurve *oldcurve,SISLCurve *rankcurve,rank_info *ranking,
1479            double eps[],double epsco[],int startfix,int endfix,int *jncont,
1480            int mini,int maxi,SISLCurve **newcurve,double maxerr[],int *stat);
1481 #ifndef S1951
1482 extern
1483 #endif
1484 void
1485    s1951(double etau[], double ecoef[], int in, int ik, int idim,
1486          int ilend, int irend, int incont, double efac[]);
1487 #ifndef  S1956
1488 extern
1489 #endif
1490 void s1956(SISLCurve *,SISLCurve *,SISLSurf **,int *);
1491 #ifndef  S1959
1492 extern
1493 #endif
1494 void s1959(SISLPoint *, SISLCurve *, double *, int *);
1495 #ifndef  S1960
1496 extern
1497 #endif
1498 void s1960(SISLPoint *, SISLSurf *, double [], int *);
1499 #ifndef S1990
1500 extern
1501 #endif
1502 void s1990(SISLSurf *, double, int *);
1503 #ifndef  S1991
1504 extern
1505 #endif
1506 void s1991(SISLCurve *,double,int *);
1507 #ifndef  S1992
1508 extern
1509 #endif
1510 void s1992(SISLObject *,int *);
1511 #ifndef  S1992
1512 extern
1513 #endif
1514 void s1992cu(SISLCurve *,int *);
1515 #ifndef  S1992
1516 extern
1517 #endif
1518 void s1992su(SISLSurf *,int *);
1519 #ifndef  S1993
1520 extern
1521 #endif
1522 void s1993(SISLCurve *,int *);
1523 #ifndef  S1994
1524 extern
1525 #endif
1526 void s1994(SISLSurf *,int *);
1527 #ifndef  S2501
1528 extern
1529 #endif
1530 void s2501(SISLSurf *, int, double [], double [], double *, int *);
1531 #ifndef  S2503
1532 extern
1533 #endif
1534 void s2503(SISLSurf *, int, double [], double [], double *, int *);
1535 #ifndef  S2505
1536 extern
1537 #endif
1538 void s2505(SISLSurf *, int, double [], double [], double *, int *);
1539 #ifndef  S2507
1540 extern
1541 #endif
1542 void s2507(SISLSurf *, int, double [], double [], double *, int *);
1543 #ifndef  S2509
1544 extern
1545 #endif
1546 void s2509(SISLSurf *, int, double [], double [], double *, int *);
1547 #ifndef  S2511
1548 extern
1549 #endif
1550 void s2511(SISLSurf *, int, double [], double [], double *, int *);
1551 #ifndef  S2512
1552 extern
1553 #endif
1554 void s2512(SISLSurf *, int, int, int, double [], int *, int *, double [], int *);
1555 #ifndef  S2513
1556 extern
1557 #endif
1558 void s2513(SISLSurf *, int, int, int, double [], double [], double [], int *);
1559 #ifndef  S2514
1560 extern
1561 #endif
1562 void s2514(SISLSurf *, int, double [], double [], double [], int *);
1563 #ifndef  S2515
1564 extern
1565 #endif
1566 void s2515(SISLSurf *, int, int, int, double [], int *,int *, double [], int *);
1567 #ifndef  S2516
1568 extern
1569 #endif
1570 void s2516(SISLSurf *, int, double [], double [], double [], int *);
1571 #ifndef  S2533
1572 extern
1573 #endif
1574 void s2533(double *, int, int, int, int, int *, double **, int *);
1575 #ifndef  S2534
1576 extern
1577 #endif
1578 void s2534(SISLSurf *, int, int, int, int,
1579            void evalp(SISLSurf *, int, int, int,
1580 		     double [], int *, int *,
1581 		     double *, int *),
1582 	 int, SISLSurf **, int *);
1583 #ifndef  S2535
1584 extern
1585 #endif
1586 void s2535(SISLSurf *, int, int, int *, int *, SISLSurf ***, int *);
1587 #ifndef  S2541
1588 extern
1589 #endif
1590 void s2541(SISLSurf *surf,
1591            void evalp(SISLSurf *, int, int, int, double [], int *, int *,
1592 		      double *, int *),
1593 	 int, int, int, double [], int, int, double **, int *);
1594 #ifndef  S2543
1595 extern
1596 #endif
1597 void s2543(SISLSurf *, int, double [], double [], double *, double *,
1598 	   double [], double [], int *);
1599 #ifndef  S2551
1600 extern
1601 #endif
1602 void s2551(SISLCurve *, double, int *, double [], double *, int *);
1603 #ifndef  S2554
1604 extern
1605 #endif
1606 void s2554(SISLCurve *, double, int *, double [], double *, int *);
1607 #ifndef  S2555
1608 extern
1609 #endif
1610 void s2555(double [], double *, int *);
1611 #ifndef  S2557
1612 extern
1613 #endif
1614 void s2557(SISLCurve *, double, int *, double [], double *, int *);
1615 #ifndef  S2558
1616 extern
1617 #endif
1618 void s2558(double [], int, double *, int *);
1619 #ifndef  S2560
1620 extern
1621 #endif
1622 void s2560(SISLCurve *, double, int *, double [], double [], double [],
1623            double [], double [], int *);
1624 #ifndef  S2561
1625 extern
1626 #endif
1627 void s2561(double [], int, double [], double [], double [], double [], int *);
1628 #ifndef  S6ADDCURVE
1629 extern
1630 #endif
1631 void s6addcurve(SISLCurve *,SISLCurve *,int,SISLCurve **,int *);
1632 #ifndef  S6AFFDIST
1633 extern
1634 #endif
1635 double s6affdist(double [],double [],double [],int);
1636 #ifndef  S6ANG
1637 extern
1638 #endif
1639 double s6ang(double [],double [],int);
1640 #ifndef  S6ANGLE
1641 extern
1642 #endif
1643 double s6angle(double [],double [],double [],int,int *);
1644 #ifndef  S6CHPAR
1645 extern
1646 #endif
1647 void s6chpar(double [],int,int,int,double []);
1648 #ifndef  S6CRSS
1649 extern
1650 #endif
1651 void s6crss(double [],double [],double []);
1652 #ifndef  S6CRVCHECK
1653 extern
1654 #endif
1655 void s6crvcheck(SISLCurve *,int *);
1656 #ifndef  S6CURVATURE
1657 extern
1658 #endif
1659 void s6curvature(double [],int,double [],int *);
1660 #ifndef  s6CURVRAD
1661 extern
1662 #endif
1663 void s6curvrad(double [],double [],double [],int,double *,int *);
1664 #ifndef  S6DECASTELJAU
1665 extern
1666 #endif
1667 void     s6deCasteljau(double [],double,double,double,int,double [],int *);
1668 #ifndef  S6DECOMP
1669 extern
1670 #endif
1671 void s6decomp(double [],double [],double [],double [],double [],int *);
1672 #ifndef  S6DEGNORM
1673 extern
1674 #endif
1675 void s6degnorm(SISLSurf *,int,double[],double[],double[],double[],
1676 	       double[],int *);
1677 #ifndef  S6DERTOPT
1678 extern
1679 #endif
1680 void s6dertopt(double [],int [],int,int,double [],int *);
1681 #ifndef  S6DIFF
1682 extern
1683 #endif
1684 void s6diff(double [],double [],int,double []);
1685 #ifndef  S6DIST
1686 extern
1687 #endif
1688 double s6dist(double [],double [],int);
1689 #ifndef  S6DLINE
1690 extern
1691 #endif
1692 double s6dline(double [],double [],double [],int,int *);
1693 #ifndef  S6DPLANE
1694 extern
1695 #endif
1696 double  s6dplane(double [],double [],double [],double [],int,int *);
1697 #ifndef  S6EQUAL
1698 extern
1699 #endif
1700 int s6equal(double,double,double);
1701 #ifndef  S6ERR
1702 extern
1703 #endif
1704 void s6err(char *,int,int);
1705 #ifndef  S6EXISTBOX
1706 extern
1707 #endif
1708 int s6existbox(SISLbox *,int,double);
1709 #ifndef S6FINDFAC
1710 extern
1711 #endif
1712 void s6findfac(double [],double [],double [],double [],int,int,
1713 	       double *,double *,double *,int *);
1714 #ifndef S6FNDINTVL
1715 extern
1716 #endif
1717 void s6fndintvl(double *et,int ik,int in,int *ileft,
1718 	      double ax1,double ax2,int mu_max,int *jstat);
1719 #ifndef S6HERM
1720 extern
1721 #endif
1722 void s6herm(double *,double *,double *,int,int,int,int,int,double [],int *);
1723 #ifndef  S6HERMITE_BEZIER
1724 extern
1725 #endif
1726 void     s6hermite_bezier(SISLSurf *,double [],double [],int,double [],int *);
1727 #ifndef  S6IDCON
1728 extern
1729 #endif
1730 void s6idcon(SISLIntdat **,SISLIntpt **,SISLIntpt **,int *);
1731 #ifndef  S6IDCPT
1732 extern
1733 #endif
1734 void s6idcpt(SISLIntdat *,SISLIntpt *,SISLIntpt **);
1735 #ifndef  S6IDEDG
1736 extern
1737 #endif
1738 void s6idedg(SISLObject *,SISLObject *,int,int,double,SISLIntdat *,
1739 	     SISLPtedge **,int *,int *);
1740 #ifndef  S6IDENTIFY
1741 extern
1742 #endif
1743 void     s6identify(SISLSurf *,double [],double [],double,double,double,int *);
1744 #ifndef  S6IDGET
1745 extern
1746 #endif
1747 void s6idget(SISLObject *,SISLObject *,int,double,SISLIntdat *,
1748 	     SISLIntdat **,int *);
1749 #ifndef  S6IDINT
1750 extern
1751 #endif
1752 void s6idint(SISLObject *,SISLObject *,SISLIntdat *,SISLIntpt **,int);
1753 #ifndef  S6IDKLIST
1754 extern
1755 #endif
1756 void s6idklist(SISLIntdat **,SISLIntlist *,int *);
1757 #ifndef  S6IDKPT
1758 extern
1759 #endif
1760 void s6idkpt(SISLIntdat **,SISLIntpt **,SISLIntpt **,SISLIntpt **,int *);
1761 #ifndef  S6IDLIS
1762 extern
1763 #endif
1764 void s6idlis(SISLObject *,SISLObject *,SISLIntdat **,int *);
1765 #ifndef  S6IDNPT
1766 extern
1767 #endif
1768 void s6idnpt(SISLIntdat **,SISLIntpt **,int,int *);
1769 #ifndef  S6IDPUT
1770 extern
1771 #endif
1772 void s6idput(SISLIntdat **,SISLIntdat *,int,double,int *);
1773 #ifndef S6INV4
1774 extern
1775 #endif
1776 void s6inv4 (double [], double [], int *);
1777 #ifndef  S6INVERT
1778 extern
1779 #endif
1780 void s6invert(double [],int,double [],int *);
1781 #ifndef  S6KNOTMULT
1782 extern
1783 #endif
1784 int s6knotmult(double [],int,int,int *,double,int *);
1785 #ifndef  S6LENGTH
1786 extern
1787 #endif
1788 double s6length(double [],int,int *);
1789 #ifndef  S6LINE
1790 extern
1791 #endif
1792 void s6line(double []);
1793 #ifndef  S6LPRJ
1794 extern
1795 #endif
1796 double s6lprj(double [],double [],int);
1797 #ifndef  S6LUFACP
1798 extern
1799 #endif
1800 void s6lufacp(double [],int [],int,int *);
1801 #ifndef  S6LUSOLP
1802 extern
1803 #endif
1804 void s6lusolp(double [],double [],int [],int,int *);
1805 #ifndef  S6METRIC
1806 extern
1807 #endif
1808 void s6metric(double [],int,int,double [],int *);
1809 #ifndef  S6MOVE
1810 extern
1811 #endif
1812 void s6move(double []);
1813 #ifndef S6MULVEC
1814 extern
1815 #endif
1816 void s6mulvec (double [],double [],double []);
1817 #ifndef  S6MVEC
1818 extern
1819 #endif
1820 void s6mvec(double [],double [],int,double []);
1821 #ifndef  S6NEWBOX
1822 extern
1823 #endif
1824 void s6newbox(SISLbox *pbox,int inum,int itype,double aepsge,int *jstat);
1825 #ifndef  S6NORM
1826 extern
1827 #endif
1828 double s6norm(double [],int,double [],int *);
1829 #ifndef  S6RATDER
1830 extern
1831 #endif
1832 void s6ratder(double [],int,int,double [],int *);
1833 #ifndef  S6ROTAX
1834 extern
1835 #endif
1836 void s6rotax(double [],double [],double [],double [],int *);
1837 #ifndef S6ROTMAT
1838 extern
1839 #endif
1840 void s6rotmat (double [],double [],double [],double [],int *);
1841 #ifndef S6SCHOEN
1842 extern
1843 #endif
1844 double s6schoen(double [],int, int);
1845 #ifndef S6SCPR
1846 extern
1847 #endif
1848 double s6scpr(double [],double [],int);
1849 #ifndef  S6SORTPAR
1850 extern
1851 #endif
1852 void s6sortpar(double [],double [],int,int,double [],double [],int *);
1853 #ifndef S6SRATDER
1854 extern
1855 #endif
1856 void s6sratder(double [],int,int,int,double [],int *);
1857 #ifndef S6STRIDER
1858 extern
1859 #endif
1860 void s6strider(double [],int,int,double [],int *);
1861 #ifndef  S6TAKEUNION
1862 extern
1863 #endif
1864 void s6takeunion(double [],int,double [],int,double **,int *,int *);
1865 #ifndef  S6TWONORM
1866 extern
1867 #endif
1868 void s6twonorm(double [],double [],double [],int *);
1869 #ifndef S9ADSIMP
1870 extern
1871 #endif
1872 double s9adsimp(double [],double [],double [],int,double [],
1873 		double [],double [],double [],double,int *);
1874 #ifndef S9ADSTEP
1875 extern
1876 #endif
1877 double s9adstep(double [],double [],double [],double [],
1878 		double [],double [],double [],double [],
1879 		double [],double [],double [],double,int *);
1880 #ifndef S9BOUNDIMP
1881 extern
1882 #endif
1883 void s9boundimp(double [],double [],SISLSurf *,double [],
1884 		int,double,int,double,double [],double [],int *);
1885 #ifndef  S9BOUNDIT
1886 extern
1887 #endif
1888 void s9boundit(double [],double [],double [],double [],
1889 	       SISLSurf *,SISLSurf *,double,int,double,
1890 	       double [],double [],double [],double [],int *);
1891 #ifndef  S9CLIPIMP
1892 extern
1893 #endif
1894 void s9clipimp(double [],double [],SISLSurf *,double [],
1895 	       int,double [],double [],double,double [],double [],int *);
1896 #ifndef  S9CLIPIT
1897 extern
1898 #endif
1899 void s9clipit(double [],double [],double [],double [],SISLSurf *,SISLSurf *,
1900 	      double [],double [],double [],double [],double,double [],
1901 	      double [],double [],double [],int *);
1902 #ifndef  S9CONMARCH
1903 extern
1904 #endif
1905 void s9conmarch(SISLSurf *,double,double [],int [],int,
1906 		double *[],int *[],int *,int *);
1907 #ifndef  S9ITERATE
1908 extern
1909 #endif
1910 void s9iterate(double [],double [],double [],double [],double [],
1911 	       SISLSurf *,SISLSurf *,double,double,double [],double [],
1912 	       double [],double [],int *);
1913 #ifndef  S9ITERIMP
1914 extern
1915 #endif
1916 void s9iterimp(double [],double [],double [],SISLSurf *,double [],int,
1917 	       double,double,double [],double [],int *);
1918 #ifndef  S9SIMPLE_KNOT
1919 extern
1920 #endif
1921 void 	 s9simple_knot(SISLSurf *,int,double [],int *,int *);
1922 #ifndef  S9SURMARCH
1923 extern
1924 #endif
1925 void s9surmarch(SISLSurf *,SISLSurf *,double [],int [],int,
1926 		double *[],int *[],int *,int *);
1927 #ifndef  SH1260
1928 extern
1929 #endif
1930 void sh1260(double aconst,SISLCurve *vcurve[],int icurve,int *jstat);
1931 #ifndef  SH1261
1932 extern
1933 #endif
1934 void sh1261(SISLCurve *pcurve1,SISLCurve *pcurve2,double ecoef1[],
1935              int ik1,double ecoef2[],int ik2,SISLCurve **rcrtanc,int *jstat);
1936 #ifndef  SH1262
1937 extern
1938 #endif
1939 void sh1262(SISLCurve *vcurve[],int iedge,int inmbx,double ecoef[],int *jstat);
1940 #ifndef  SH1263
1941 extern
1942 #endif
1943 void sh1263(SISLCurve *vcurve[],int iedge,SISLCurve *vboundc[],int *jstat);
1944 #ifndef  SH1365
1945 extern
1946 #endif
1947 void sh1365(SISLCurve *,double [],int,int,int,int,SISLCurve **,
1948 	    double **,double **,int *);
1949 #ifndef  SH1369
1950 extern
1951 #endif
1952 void sh1369(SISLSurf *,double [],double [],double,double,int,double,
1953 	    double,int,int *,SISLTrack ***,int *,double **,int **,int *,
1954 	    SISLIntcurve ***,int *,SISLIntsurf ***,int *);
1955 #ifndef  SH1371
1956 extern
1957 #endif
1958 void sh1371(SISLCurve *,double [],double,int,double,double,int,int *,
1959 	    SISLTrack ***,int *,double **,int **,int *,SISLIntcurve ***,int *);
1960 #ifndef  SH1372
1961 extern
1962 #endif
1963 void sh1372(SISLCurve *,double [],double [],double,int,double,double,int,
1964 	    int *,SISLTrack ***,int *,double **,int **,int *,
1965 	    SISLIntcurve ***,int *);
1966 #ifndef  SH1373
1967 extern
1968 #endif
1969 void sh1373(SISLCurve *,double [],double [],double [],int,double,double,
1970 	    int,int *,SISLTrack ***,int *,double **,int **,int *,
1971 	    SISLIntcurve ***,int *);
1972 #ifndef  SH1374
1973 extern
1974 #endif
1975 void sh1374(SISLCurve *,double [],int,double,double,int,int *,SISLTrack ***,
1976 	    int *,double **,int **,int *,SISLIntcurve ***,int *);
1977 #ifndef  SH1375
1978 extern
1979 #endif
1980 void sh1375(SISLCurve *,double [],double [],double,double,int,double,
1981 	    double,int,int *,SISLTrack ***,int *,double **,int **,
1982 	    int *,SISLIntcurve ***,int *);
1983 #ifndef  SH1460
1984 extern
1985 #endif
1986 void sh1460(void (*)(double [],double [],int,int,int *),
1987 	    SISLCurve *[],int,SISLSurf ***,int *);
1988 #ifndef  SH1461
1989 extern
1990 #endif
1991 void sh1461(void (*)(double [],double [],int,int,int *),
1992 	    void (*)(void (*)(double [],double [],int,int,int *),
1993 		     SISLCurve *[],int,double [],double [],double [],int *),
1994 	    SISLCurve *[],int,SISLSurf *[],int *);
1995 #ifndef  SH1462
1996 extern
1997 #endif
1998 void sh1462(void (*)(double [],double [],int,int,int *),
1999 	    SISLCurve *[],int,double [],double [],double [],int *);
2000 #ifndef  SH1463
2001 extern
2002 #endif
2003 void sh1463(void (*)(double [],double [],int,int,int *),
2004 	    SISLCurve *[],int,double [],double [],double [],int *);
2005 #ifndef  SH1464
2006 extern
2007 #endif
2008 void sh1464(void (*)(double [],double [],int,int,int *),
2009 	    SISLCurve *[],int,double [],double [],double [],int *);
2010 #ifndef  SH1465
2011 extern
2012 #endif
2013 void sh1465(void (*)(double [],double [],int,int,int *),
2014 	    SISLCurve *[],int,double [],double [],double [],int *);
2015 #ifndef  SH1466
2016 extern
2017 #endif
2018 void sh1466(SISLCurve *[],double [],int,double [],double [],int *);
2019 #ifndef  SH1467
2020 extern
2021 #endif
2022 void sh1467(SISLCurve *[],double [],int,double [],double [],int *);
2023 #ifndef  SH1502
2024 extern
2025 #endif
2026 void sh1502(SISLCurve *,double [],double [],double [],double,double,
2027 	    int,double,double,int,int *,SISLTrack ***,int *,double **,
2028 	    int **,int *,SISLIntcurve ***,int *);
2029 #ifndef  SH1503
2030 extern
2031 #endif
2032 void sh1503(SISLSurf *,double [],double [],double [],double,double,int,
2033 	    double,double,int,int *,SISLTrack ***,int *,double **,int **,
2034 	    int *,SISLIntcurve ***,int *,SISLIntsurf ***,int *);
2035 #ifndef  SH1510
2036 extern
2037 #endif
2038 void sh1510(SISLSurf *,double [],int,double,double,int,int *,
2039 	    SISLTrack ***,int *,double **,int **,int *,
2040 	    SISLIntcurve ***,int *,SISLIntsurf ***,int *);
2041 #ifndef  SH1511
2042 extern
2043 #endif
2044 void sh1511(SISLSurf *,double [],double [],int,double,double,int,
2045 	    int *,SISLTrack ***,int *,double **,int **,int *,
2046 	    SISLIntcurve ***,int *,SISLIntsurf ***,int *);
2047 #ifndef  SH1761
2048 extern
2049 #endif
2050 void sh1761(SISLObject *,SISLObject *,double,SISLIntdat **,int *);
2051 #ifndef  SH1762
2052 extern
2053 #endif
2054 void sh1762(SISLObject *,SISLObject *,double,SISLIntdat **,SISLEdge *[],int *);
2055 #ifndef  SH1779
2056 extern
2057 #endif
2058 void sh1779(SISLObject *,SISLObject *,double,SISLIntdat **,SISLIntpt *,
2059 	    int *,int *);
2060 #ifndef  SH1779_AT
2061 extern
2062 #endif
2063 void sh1779_at(SISLObject *,SISLObject *,SISLIntpt *,int *);
2064 #ifndef  SH1780
2065 extern
2066 #endif
2067 void sh1780(SISLObject *,SISLObject *,double,SISLIntdat **,
2068 	    SISLIntpt *,int *,int *);
2069 #ifndef  SH1780_AT
2070 extern
2071 #endif
2072 void sh1780_at(SISLObject *,SISLObject *,SISLIntpt *,int *);
2073 #ifndef  SH1781
2074 extern
2075 #endif
2076 void sh1781(SISLObject *,SISLObject *,double,SISLIntdat **,
2077 	    SISLIntpt *,int *,int *);
2078 #ifndef  SH1781_AT
2079 extern
2080 #endif
2081 void sh1781_at(SISLObject *,SISLObject *,SISLIntpt *,int *);
2082 #ifndef  SH1782
2083 extern
2084 #endif
2085 void sh1782(SISLObject *,SISLObject *,double,SISLIntdat *,int,double,
2086 	    SISLIntdat **,int *,int *);
2087 #ifndef  SH1783
2088 extern
2089 #endif
2090 void sh1783(SISLCurve *,SISLCurve *,double,double [],int,int,double [],
2091 	    double [],int *);
2092 #ifndef  SH1784
2093 extern
2094 #endif
2095 void sh1784(SISLCurve *,SISLSurf *,double,double [],int,int,double [],
2096 	    double [],int *);
2097 #ifndef  SH1786
2098 extern
2099 #endif
2100 void sh1786(SISLObject *,SISLObject *,double,SISLIntdat **,SISLIntpt *,
2101 	    int *,int *);
2102 #ifndef  SH1787
2103 extern
2104 #endif
2105 void sh1787(SISLObject *,SISLObject *,double,SISLIntdat **,SISLIntpt *,
2106 	    int *,int *);
2107 #ifndef  SH1790
2108 extern
2109 #endif
2110 void sh1790(SISLObject *,SISLObject *,int,double,int *);
2111 #ifndef SH1794
2112 extern
2113 #endif
2114 void sh1794(SISLObject *po1, SISLObject *po2, SISLIntpt **up, int nmb_pt,
2115 	    double aepsge, int *jstat);
2116 #ifndef  SH1830
2117 extern
2118 #endif
2119 void sh1830(SISLObject *,SISLObject *,double,int *);
2120 #ifndef  SH1831
2121 extern
2122 #endif
2123 void sh1831(SISLCurve *pc1, SISLCurve *pc2, int isign, double epoint[],
2124             double enorm[], double aepsge, int *jstat);
2125 #ifndef  SH1834
2126 extern
2127 #endif
2128 void sh1834(SISLObject *,SISLObject *,double,int,double [],double [],int *);
2129 #ifndef  SH1839
2130 extern
2131 #endif
2132 void sh1839(SISLObject *,SISLObject *,double,int *);
2133 #ifndef  SH1850
2134 extern
2135 #endif
2136 void sh1850(SISLCurve *,double [],double [],int,double,double,int,int *,
2137 	    SISLTrack ***,int *,double **,int **,int *,SISLIntcurve ***,int *);
2138 #ifndef  SH1851
2139 extern
2140 #endif
2141 void sh1851(SISLSurf *,double [],double [],int,double,double,int,int *,
2142 	    SISLTrack ***,int *,double **,int **,int *,SISLIntcurve ***,
2143 	    int *,SISLIntsurf ***,int *);
2144 #ifndef  SH1852
2145 extern
2146 #endif
2147 void sh1852(SISLSurf *,double [],double,int,double,double,int,int *,
2148 	    SISLTrack ***,int *,double **,int **,int *,SISLIntcurve ***,
2149 	    int *,SISLIntsurf ***,int *);
2150 #ifndef  SH1853
2151 extern
2152 #endif
2153 void sh1853(SISLSurf *,double [],double [],double,int,double,double,int,
2154 	    int *,SISLTrack ***,int *,double **,int **,int *,
2155 	    SISLIntcurve ***,int *,SISLIntsurf ***,int *);
2156 #ifndef  SH1854
2157 extern
2158 #endif
2159 void sh1854(SISLSurf *,double[],double[],double[],int,double,double,int,
2160 	    int *, SISLTrack ***,int *,double **,int **,int *,
2161 	    SISLIntcurve ***,int *,SISLIntsurf ***,int *);
2162 #ifndef  SH1855
2163 extern
2164 #endif
2165 void sh1855(SISLSurf *,double [],double,double [],int,double,double,
2166 	    int,int *,SISLTrack ***,int *,double **,int **,int *,
2167 	    SISLIntcurve ***,int *);
2168 #ifndef  SH1856
2169 extern
2170 #endif
2171 void sh1856(SISLSurf *,double [],double [],int,double,double,int,int *,
2172 	    SISLTrack ***,int *,double **,int **,int *,SISLIntcurve ***,int *);
2173 #ifndef  SH1857
2174 extern
2175 #endif
2176 void sh1857(SISLCurve *,SISLCurve *,double,double,int,int *,SISLTrack ***,
2177 	    int *,double **,double **,int **,int *,SISLIntcurve ***,int *);
2178 #ifndef  SH1858
2179 extern
2180 #endif
2181 void sh1858(SISLSurf *,SISLCurve *,double,double,int,int *,SISLTrack ***,
2182 	    int *,double **,double **,int **,int *,SISLIntcurve ***,int *);
2183 #ifndef  SH1859
2184 extern
2185 #endif
2186 void sh1859(SISLSurf *,SISLSurf *,double,double,int,int *,SISLTrack ***,
2187 	    int *,double **,double **,int **,int *,SISLIntcurve ***,
2188 	    int *,SISLIntsurf ***,int *);
2189 #ifndef  SH1860
2190 extern
2191 #endif
2192 void sh1860(SISLSurf *,double[],int,double,double,int,int *,SISLTrack ***,
2193 	    int *,double **,int **,int *,SISLIntcurve ***,int *,
2194 	    SISLIntsurf ***,int *);
2195 
2196 #ifndef  SH1870
2197 extern
2198 #endif
2199 void sh1870(SISLSurf *,double *,int,double,double,int,int *,SISLTrack ***,
2200 	    int *,double **,int **,int *,SISLIntcurve ***,int *);
2201 #ifndef  SH1871
2202 extern
2203 #endif
2204 void sh1871(SISLCurve *,double *,int,double,double,int,int *,SISLTrack ***,
2205 	    int *,double **,int **,int *,SISLIntcurve ***,int *);
2206 #ifndef  SH1922
2207 extern
2208 #endif
2209 void sh1922(double [],int,int,double [],int,double [],
2210 	    int [],int [],int *);
2211 #ifndef  SH1923
2212 extern
2213 #endif
2214 void sh1923(double *,int,int,int *,int *);
2215 #ifndef  SH1924
2216 extern
2217 #endif
2218 void sh1924(double *,double *,int,int,int,int *,int *);
2219 #ifndef  SH1925
2220 extern
2221 #endif
2222 void sh1925(SISLCurve *,SISLCurve *,int,double [],int [],
2223 	    int [],double [],double [],int,int,int *);
2224 #ifndef  SH1926
2225 extern
2226 #endif
2227 void sh1926(double [],int,int,int,double [],double [],int,double [],
2228 	    int [],int [],double [],int [],double [],int *);
2229 #ifndef  SH1927
2230 extern
2231 #endif
2232 void sh1927(double [],int,int,int,SISLCurve *,int,int,double [],int *);
2233 #ifndef  SH1928
2234 extern
2235 #endif
2236 void sh1928(double [],int,int,int,double [],double [],int,int,int,
2237 	    double [],int,int [],int [],double [],double [],int [],int *);
2238 #ifndef  SH1929
2239 extern
2240 #endif
2241 void sh1929(double [],int,int,int,double [],int,int,double [],
2242 	    int *,int *,int *);
2243 #ifndef  SH1930
2244 extern
2245 #endif
2246 void sh1930(double [],int [],int [],double [],double [],
2247 	    int,int,int,int,int,int,int *);
2248 #ifndef  SH1992
2249 extern
2250 #endif
2251 void sh1992(SISLObject *,int,double,int *);
2252 #ifndef  SH1992CU
2253 extern
2254 #endif
2255 void sh1992cu(SISLCurve *,int,double,int *);
2256 #ifndef  SH1992SU
2257 extern
2258 #endif
2259 void sh1992su(SISLSurf *,int,double,int *);
2260 #ifndef  SH1993
2261 extern
2262 #endif
2263 void sh1993(SISLCurve *,double,int *);
2264 #ifndef  SH1994
2265 extern
2266 #endif
2267 void sh1994(SISLSurf *,double,int *);
2268 #ifndef SH6CLOSEVERT
2269 extern
2270 #endif
2271 void sh6closevert(SISLCurve *,SISLSurf *,double *,double []);
2272 #ifndef SH6CVVERT
2273 extern
2274 #endif
2275 void
2276 sh6cvvert(SISLCurve *pc1, SISLCurve *pc2, double *cpar1, double *cpar2);
2277 #ifndef  SH6COMEDG
2278 extern
2279 #endif
2280 void sh6comedg(SISLObject *,SISLObject *,SISLIntpt *,SISLIntpt *,int *);
2281 #ifndef  SH6CONNECT
2282 extern
2283 #endif
2284 void sh6connect(SISLIntpt *,SISLIntpt *,int *);
2285 #ifndef  SH6COUNT
2286 extern
2287 #endif
2288 int sh6count(SISLIntpt *,int *);
2289 #ifndef  SH6DEGEN
2290 extern
2291 #endif
2292 void sh6degen(SISLObject *,SISLObject *,SISLIntdat **,double,int *);
2293 #ifndef  SH6DISCONNECT
2294 extern
2295 #endif
2296 void sh6disconnect(SISLIntpt *,SISLIntpt *,int *);
2297 #ifndef  SH6EDGPOINT
2298 extern
2299 #endif
2300 void sh6edgpoint(SISLEdge *[],SISLIntpt ***,int *,int *);
2301 #ifndef  SH6EDGRED
2302 extern
2303 #endif
2304 void sh6edgred(SISLObject *,SISLObject *,SISLIntdat *,int *);
2305 #ifndef  SH6EVALINT
2306 extern
2307 #endif
2308 void sh6evalint(SISLObject *,SISLObject *,double [],int,SISLIntpt *,
2309 		double,double *[],double *[],double *[],int *);
2310 #ifndef  SH6FINDSPLIT
2311 extern
2312 #endif
2313 void sh6findsplit(SISLSurf *,SISLSurf *,double,int *);
2314 #ifndef  SH6FLOOP
2315 extern
2316 #endif
2317 void sh6floop(SISLIntpt *[],int,int *,int *);
2318 #ifndef  SH6GETGEOM
2319 extern
2320 #endif
2321 void sh6getgeom(SISLObject *,int,SISLIntpt *,double **,double **,double,int *);
2322 #ifndef  SH6GETLIST
2323 extern
2324 #endif
2325 void sh6getlist(SISLIntpt *,SISLIntpt *,int *,int *,int *);
2326 #ifndef  SH6GETMAIN
2327 extern
2328 #endif
2329 SISLIntpt *sh6getmain(SISLIntpt *);
2330 #ifndef  SH6GETNEXT
2331 extern
2332 #endif
2333 SISLIntpt *sh6getnext(SISLIntpt *,int);
2334 #ifndef  SH6GETNHBRS
2335 extern
2336 #endif
2337 void sh6getnhbrs(SISLIntpt *,SISLIntpt **,SISLIntpt **,int *);
2338 #ifndef  SH6GETOTHER
2339 extern
2340 #endif
2341 void sh6getother(SISLIntpt *,SISLIntpt *,SISLIntpt **,int *);
2342 #ifndef  SH6GETPREV
2343 extern
2344 #endif
2345 int sh6getprev(SISLIntpt *,SISLIntpt *);
2346 #ifndef  SH6GETSEGDIV
2347 extern
2348 #endif
2349 int sh6getsegdiv(SISLSurf *ps, int idiv, double epar[], int *seg_flag);
2350 #ifndef  SH6GETTOP
2351 extern
2352 #endif
2353 void sh6gettop(SISLIntpt *,int,int *,int *,int *,int *,int *);
2354 #ifndef  SH6GETTOPHLP
2355 extern
2356 #endif
2357 void sh6gettophlp(SISLIntpt *,int [4],int,int *);
2358 #ifndef  SH6IDALLEDG
2359 extern
2360 #endif
2361 void sh6idalledg(SISLObject *,SISLObject *,SISLIntdat *,SISLEdge *[],int *);
2362 #ifndef  SH6IDCON
2363 extern
2364 #endif
2365 void sh6idcon (SISLIntdat **,SISLIntpt **,SISLIntpt **,int *);
2366 #ifndef  SH6IDFCROSS
2367 extern
2368 #endif
2369 void sh6idfcross(SISLIntdat *,SISLIntpt *[],int *,int,int,int *);
2370 #ifndef  SH6IDGET
2371 extern
2372 #endif
2373 void sh6idget(SISLObject *,SISLObject *,int,double,SISLIntdat *,
2374 	      SISLIntdat **,double,int *);
2375 #ifndef  SH6IDKPT
2376 extern
2377 #endif
2378 void sh6idkpt(SISLIntdat **,SISLIntpt **,int,int *);
2379 #ifndef  SH6IDLIS
2380 extern
2381 #endif
2382 void sh6idlis(SISLObject *,SISLObject *,SISLIntdat **,double,int *);
2383 #ifndef  SH6IDNPT
2384 extern
2385 #endif
2386 void sh6idnpt(SISLIntdat **,SISLIntpt **,int,int *);
2387 #ifndef  SH6IDNEWUNITE
2388 extern
2389 #endif
2390 void sh6idnewunite(SISLObject *,SISLObject *,SISLIntdat **,
2391 		   SISLIntpt **,SISLIntpt **,double,double,int *);
2392 #ifndef  SH6IDPUT
2393 extern
2394 #endif
2395 void sh6idput(SISLObject *,SISLObject *,SISLIntdat **,SISLIntdat *,
2396 	      int,double,SISLIntpt ***,int *,int *);
2397 #ifndef  SH6IDRMCROSS
2398 extern
2399 #endif
2400 void sh6idrmcross(SISLObject *,SISLObject *,SISLIntdat **,SISLIntpt *[],
2401 		  int,SISLIntpt *[],int,int *);
2402 #ifndef  SH6IDSPLIT
2403 extern
2404 #endif
2405 void sh6idsplit(SISLIntdat **,SISLIntpt *,int *);
2406 #ifndef  SH6IDUNITE
2407 extern
2408 #endif
2409 void sh6idunite(SISLIntdat **,SISLIntpt **,SISLIntpt **,double,int *);
2410 #ifndef  SH6INSERT
2411 extern
2412 #endif
2413 void sh6insert(SISLIntdat **,SISLIntpt *,SISLIntpt *,SISLIntpt **,int *);
2414 #ifndef  SH6INSERTPT
2415 extern
2416 #endif
2417 void sh6insertpt(SISLIntpt *,SISLIntpt *,SISLIntpt *,int *);
2418 #ifndef  SH6ISCONNECT
2419 extern
2420 #endif
2421 int sh6isconnect(SISLIntpt *,SISLIntpt *,SISLIntpt *);
2422 #ifndef  SH6ISHELP
2423 extern
2424 #endif
2425 int sh6ishelp (SISLIntpt *);
2426 #ifndef  SH6ISINSIDE
2427 extern
2428 #endif
2429 void sh6isinside(SISLObject *,SISLObject *,SISLIntpt *,int *);
2430 #ifndef  SH6ISMAIN
2431 extern
2432 #endif
2433 int sh6ismain(SISLIntpt *);
2434 #ifndef  SH6NMBHELP
2435 extern
2436 #endif
2437 int sh6nmbhelp(SISLIntpt *,int *);
2438 #ifndef  SH6NMBMAIN
2439 extern
2440 #endif
2441 int sh6nmbmain (SISLIntpt *,int *);
2442 #ifndef  SH6PTOBJ
2443 extern
2444 #endif
2445 void sh6ptobj(double *,SISLObject *,double,double [],double [],int *);
2446 #ifndef  SH6PUTSING
2447 extern
2448 #endif
2449 void sh6putsing( SISLIntpt *,SISLIntpt *);
2450 #ifndef  SH6PUTTOUCH
2451 extern
2452 #endif
2453 void sh6puttouch( SISLIntpt *,SISLIntpt *,int);
2454 #ifndef  SH6RED
2455 extern
2456 #endif
2457 void sh6red(SISLObject *,SISLObject *,SISLIntdat *,int *);
2458 #ifndef  SH6REMCON
2459 extern
2460 #endif
2461 void sh6remcon (SISLIntdat **,SISLIntpt *,SISLIntpt *,int *);
2462 #ifndef  SH6REMOVEPT
2463 extern
2464 #endif
2465 void sh6removept(SISLIntpt *,SISLIntpt *,SISLIntpt *,int *);
2466 #ifndef  SH6SEPCRV
2467 extern
2468 #endif
2469 void sh6sepcrv(SISLCurve *,SISLCurve *,double,double [],double *,int *);
2470 #ifndef  SH6SETCNSDIR
2471 extern
2472 #endif
2473 void sh6setcnsdir(SISLIntpt *,SISLIntpt *,int,int *);
2474 #ifndef  SH6SETDIR
2475 extern
2476 #endif
2477 void sh6setdir(SISLIntpt *,SISLIntpt *,int *);
2478 #ifndef SH6SETSEG
2479 extern
2480 #endif
2481 void sh6setseg(SISLSurf *ps, int idir, double *segmentation, int nseg,
2482 	       int type, int *jstat);
2483 #ifndef  SH6SETTOP
2484 extern
2485 #endif
2486 void sh6settop(SISLIntpt *,int,int,int,int,int,int *);
2487 #ifndef  SH6SPLITGEOM
2488 extern
2489 #endif
2490 void sh6splitgeom(SISLSurf *,SISLSurf *,double,double [],double [],
2491 		  double *,double *,int *);
2492 #ifndef  SH6TOHELP
2493 extern
2494 #endif
2495 void sh6tohelp(SISLIntpt *,int *);
2496 #ifndef  SH6TOMAIN
2497 extern
2498 #endif
2499 void sh6tomain(SISLIntpt *,int *);
2500 #ifndef  SH6TRIMLIST
2501 extern
2502 #endif
2503 void sh6trimlist(SISLIntpt *,SISLIntpt ***,int *,int *);
2504 #ifndef  CRV_ARC_TANG
2505 extern
2506 #endif
2507 void crv_arc_tang(SISLCurve *,double[],double,double,double[],double[],int *);
2508 #ifndef  CRV_CRV_TANG
2509 extern
2510 #endif
2511 void crv_crv_tang(SISLCurve *,SISLCurve *,double,double[],double[],int *);
2512 #ifndef  CRV_LIN_TANG
2513 extern
2514 #endif
2515 void crv_lin_tang(SISLCurve *,double[],double[],double,double,double *,int *);
2516 #ifndef  EV_CV_OFF
2517 extern
2518 #endif
2519 void ev_cv_off(SISLCurve *,int,double,int *,double,double[],int *);
2520 #ifndef  EVAL_2_CRV
2521 extern
2522 #endif
2523 void eval_2_crv(SISLCurve *,SISLCurve *,int,double[],int *,int *,
2524 		double[],int *);
2525 #ifndef  EVAL_CRV_ARC
2526 extern
2527 #endif
2528 void eval_crv_arc(SISLCurve *,double[],double,int,double[],int *,
2529 		  double[],int *);
2530 #ifndef  HP_S1880
2531 extern
2532 #endif
2533 void hp_s1880(SISLObject *,SISLObject *,int,int,int,SISLIntdat *,int *,
2534 	      double **,double **,int **,int *,SISLIntcurve ***,
2535 	      int *,SISLIntsurf ***,int *);
2536 #ifndef  INT_JOIN_PER
2537 extern
2538 #endif
2539 void int_join_per(SISLIntdat **,SISLObject *,SISLObject *,double [],
2540 		  int,double,int *);
2541 #ifndef  MAKE_CV_KREG
2542 extern
2543 #endif
2544 void make_cv_kreg(SISLCurve *,SISLCurve **,int *);
2545 #ifndef  MAKE_SF_KREG
2546 extern
2547 #endif
2548 void make_sf_kreg(SISLSurf *,SISLSurf **,int *);
2549 #ifndef  MAKE_TRACKS
2550 extern
2551 #endif
2552 void make_tracks(SISLObject *,SISLObject *,int,double [],int,SISLIntlist **,
2553 		 int *,SISLTrack ***,double,int *);
2554 #ifndef  NEWKNOTS
2555 extern
2556 #endif
2557 void newknots(double [],int,int,double [],int,double,double **,int *,int *);
2558 #ifndef  PICK_CRV_SF
2559 extern
2560 #endif
2561 void pick_crv_sf(SISLObject *,SISLObject *,int,SISLIntpt *,SISLIntpt *,
2562 		 SISLCurve **,int *);
2563 #ifndef  PO_CRV_TANG
2564 extern
2565 #endif
2566 void po_crv_tang(SISLCurve *,double[],double,double,double *,int *);
2567 #ifndef  REFINE_ALL
2568 extern
2569 #endif
2570 void refine_all(SISLIntdat **,SISLObject *,SISLObject *,double [],
2571 		int,double,int *);
2572 #ifndef  SH_1D_DIV
2573 extern
2574 #endif
2575 void sh_1d_div(SISLObject *,SISLObject *,double,SISLIntdat **,
2576 	       SISLEdge *[],int *);
2577 #ifndef  SH_DIV_CRV
2578 extern
2579 #endif
2580 void sh_div_crv(SISLCurve *,int,double,SISLCurve **,int *);
2581 #ifndef  SH_DIV_SURF
2582 extern
2583 #endif
2584 void sh_div_surf(SISLSurf *,int,int,double,SISLSurf **,int *);
2585 #ifndef  SH_SET_AT
2586 extern
2587 #endif
2588 void sh_set_at(SISLObject *,SISLObject *,SISLIntdat *,int *);
2589 #ifndef  SHAPE
2590 extern
2591 #endif
2592 void shape(double [],double [],int,int,int *);
2593 #ifndef  SHCHECKPUT
2594 extern
2595 #endif
2596 void shcheckput(SISLObject *,SISLIntdat **,SISLIntdat *,int,double,int *);
2597 #ifndef  SHCHECKTYPE
2598 extern
2599 #endif
2600 int shchecktype(SISLObject *,double *);
2601 #ifndef  SHCSFSING
2602 extern
2603 #endif
2604 void shcsfsing(SISLCurve *,SISLSurf *,double [],double [],double [],int *);
2605 #ifndef  SHEVALC
2606 extern
2607 #endif
2608 void shevalc(SISLCurve *,int,double,double,int *,double [],int *);
2609 #ifndef  SHMKHLPPTS
2610 extern
2611 #endif
2612 void shmkhlppts(SISLObject *,SISLObject *,double,SISLIntdat **,
2613 		SISLEdge *[],int *,int *);
2614 #ifndef  SHSING
2615 extern
2616 #endif
2617 void shsing(SISLSurf *,SISLSurf *,double [],double [],double [],int *);
2618 #ifndef  SPLI_SILH
2619 extern
2620 #endif
2621 void spli_silh (SISLIntdat ** pintdat,SISLObject * po1,int *jstat);
2622 #ifndef  TEST_CYCLIC_KNOTS
2623 extern
2624 #endif
2625 void test_cyclic_knots(double [],int,int,int *);
2626 
2627 #else /* NOT SISLNEEDPROTOTYPES */
2628 
2629 #ifndef CONSTRUCT
2630 extern
2631 #endif
2632 SISLIntpt     *copyIntpt();
2633 #ifndef CONSTRUCT
2634 extern
2635 #endif
2636 SISLEdge      *newEdge();
2637 #ifndef CONSTRUCT
2638 extern
2639 #endif
2640 SISLIntdat    *newIntdat();
2641 #ifndef CONSTRUCT
2642 extern
2643 #endif
2644 SISLIntlist   *newIntlist();
2645 #ifndef CONSTRUCT
2646 extern
2647 #endif
2648 SISLIntpt     *newIntpt();
2649 #ifndef CONSTRUCT
2650 extern
2651 #endif
2652 SISLObject    *newObject();
2653 #ifndef CONSTRUCT
2654 extern
2655 #endif
2656 SISLPoint     *newPoint();
2657 #ifndef CONSTRUCT
2658 extern
2659 #endif
2660 SISLPtedge    *newPtedge();
2661 #ifndef CONSTRUCT
2662 extern
2663 #endif
2664 SISLIntsurf   *newIntsurf();
2665 #ifndef CONSTRUCT
2666 extern
2667 #endif
2668 SISLTrack     *newTrack();
2669 #ifndef CONSTRUCT
2670 extern
2671 #endif
2672 SISLTrimpar   *newTrimpar();
2673 #ifndef CONSTRUCT
2674 extern
2675 #endif
2676 SISLIntpt     *hp_newIntpt();
2677 #ifndef CONSTRUCT
2678 extern
2679 #endif
2680 SISLIntpt     *hp_copyIntpt();
2681 #ifndef CONSTRUCT
2682 extern
2683 #endif
2684 SISLSegmentation *newSegmentation();
2685 #ifndef DESTRUCT
2686 extern
2687 #endif
2688 void freeEdge();
2689 #ifndef DESTRUCT
2690 extern
2691 #endif
2692 void freeIntdat();
2693 #ifndef DESTRUCT
2694 extern
2695 #endif
2696 void freeIntlist();
2697 #ifndef DESTRUCT
2698 extern
2699 #endif
2700 void freeIntpt();
2701 #ifndef DESTRUCT
2702 extern
2703 #endif
2704 void freeObject();
2705 #ifndef DESTRUCT
2706 extern
2707 #endif
2708 void freePoint();
2709 #ifndef DESTRUCT
2710 extern
2711 #endif
2712 void freePtedge();
2713 #ifndef DESTRUCT
2714 extern
2715 #endif
2716 void freeIntsurf();
2717 #ifndef DESTRUCT
2718 extern
2719 #endif
2720 void freeTrimpar();
2721 #ifndef DESTRUCT
2722 extern
2723 #endif
2724 void freeTrack();
2725 #ifndef DESTRUCT
2726 extern
2727 #endif
2728 void freeSegmentation();
2729 #ifndef MAKE3D
2730 extern
2731 #endif
2732 void make3D();
2733 #ifndef S1119
2734 extern
2735 #endif
2736 void s1119();
2737 #ifndef S1161
2738 extern
2739 #endif
2740 void s1161();
2741 #ifndef S1162
2742 extern
2743 #endif
2744 void s1162();
2745 #ifndef S1172
2746 extern
2747 #endif
2748 void s1172();
2749 #ifndef S1173
2750 extern
2751 #endif
2752 void s1173();
2753 #ifndef S1174
2754 extern
2755 #endif
2756 void s1174();
2757 #ifndef S1190
2758 extern
2759 #endif
2760 void s1190();
2761 #ifndef  S1192
2762 extern
2763 #endif
2764 void s1192();
2765 #ifndef  S1219
2766 extern
2767 #endif
2768 void s1219();
2769 #ifndef  S1220
2770 extern
2771 #endif
2772 void s1220();
2773 #ifndef  S1222
2774 extern
2775 #endif
2776 void s1222();
2777 #ifndef  S1223
2778 extern
2779 #endif
2780 void s1223();
2781 #ifndef  S1224
2782 extern
2783 #endif
2784 void s1224();
2785 #ifndef  S1231
2786 extern
2787 #endif
2788 void s1231();
2789 #ifndef  S1232
2790 extern
2791 #endif
2792 void s1232();
2793 #ifndef  S1235
2794 extern
2795 #endif
2796 void s1235();
2797 #ifndef  S1236
2798 extern
2799 #endif
2800 void s1236();
2801 #ifndef  S1239
2802 extern
2803 #endif
2804 void s1239();
2805 #ifndef  S1244
2806 extern
2807 #endif
2808 void s1244();
2809 #ifndef  S1245
2810 extern
2811 #endif
2812 void s1245();
2813 #ifndef  S1251
2814 extern
2815 #endif
2816 void s1251();
2817 #ifndef  S1252
2818 extern
2819 #endif
2820 void s1252();
2821 #ifndef S1291
2822 extern
2823 #endif
2824 void s1291();
2825 #ifndef  S1301
2826 extern
2827 #endif
2828 void s1301();
2829 #ifndef  S1304
2830 extern
2831 #endif
2832 void s1304();
2833 #ifndef  S1305
2834 extern
2835 #endif
2836 void s1305();
2837 #ifndef  S1306
2838 extern
2839 #endif
2840 void s1306();
2841 #ifndef  S1307
2842 extern
2843 #endif
2844 void s1307();
2845 #ifndef  S1308
2846 extern
2847 #endif
2848 void s1308();
2849 #ifndef  S1309
2850 extern
2851 #endif
2852 double s1309();
2853 #ifndef  S1311
2854 extern
2855 #endif
2856 double s1311();
2857 #ifndef  S1312
2858 extern
2859 #endif
2860 void s1312();
2861 #ifndef  S1313
2862 extern
2863 #endif
2864 void s1313();
2865 #ifndef  S1320
2866 extern
2867 #endif
2868 void s1320();
2869 #ifndef  S1321
2870 extern
2871 #endif
2872 void s1321();
2873 #ifndef  S1322
2874 extern
2875 #endif
2876 void s1322();
2877 #ifndef  S1323
2878 extern
2879 #endif
2880 void s1323();
2881 #ifndef  S1324
2882 extern
2883 #endif
2884 void s1324();
2885 #ifndef  S1325
2886 extern
2887 #endif
2888 double s1325();
2889 #ifndef  S1329
2890 extern
2891 #endif
2892 void s1329();
2893 #ifndef  S1330
2894 extern
2895 #endif
2896 void s1330();
2897 #ifndef  S1331
2898 extern
2899 #endif
2900 void s1331();
2901 #ifndef  S1333
2902 extern
2903 #endif
2904 void s1333();
2905 #ifndef  S1333_COUNT
2906 extern
2907 #endif
2908 void s1333_count();
2909 #ifndef  S1333_CYCLIC
2910 extern
2911 #endif
2912 void s1333_cyclic();
2913 #ifndef  S1334
2914 extern
2915 #endif
2916 void s1334();
2917 #ifndef  S1340
2918 extern
2919 #endif
2920 void s1340();
2921 #ifndef  S1341
2922 extern
2923 #endif
2924 void s1341();
2925 #ifndef  S1342
2926 extern
2927 #endif
2928 void s1342();
2929 #ifndef  S1343
2930 extern
2931 #endif
2932 void s1343();
2933 #ifndef  S1345
2934 extern
2935 #endif
2936 void s1345();
2937 #ifndef  S1346
2938 extern
2939 #endif
2940 void s1346();
2941 #ifndef  S1347
2942 extern
2943 #endif
2944 void s1347();
2945 #ifndef  S1348
2946 extern
2947 #endif
2948 void s1348();
2949 #ifndef  S1349
2950 extern
2951 #endif
2952 void s1349();
2953 #ifndef  S1350
2954 extern
2955 #endif
2956 void s1350();
2957 #ifndef  S1351
2958 extern
2959 #endif
2960 void s1351();
2961 #ifndef  S1352
2962 extern
2963 #endif
2964 void s1352();
2965 #ifndef  S1353
2966 extern
2967 #endif
2968 void s1353();
2969 #ifndef  S1354
2970 extern
2971 #endif
2972 void s1354();
2973 #ifndef  S1355
2974 extern
2975 #endif
2976 void s1355();
2977 #ifndef  S1358
2978 extern
2979 #endif
2980 void s1358();
2981 #ifndef  S1359
2982 extern
2983 #endif
2984 void s1359();
2985 #ifndef  S1361
2986 extern
2987 #endif
2988 void s1361();
2989 #ifndef  S1362
2990 extern
2991 #endif
2992 void s1362();
2993 #ifndef  S1366
2994 extern
2995 #endif
2996 void s1366();
2997 #ifndef  S1367
2998 extern
2999 #endif
3000 void s1367();
3001 #ifndef  S1370
3002 extern
3003 #endif
3004 void s1370();
3005 #ifndef  S1376
3006 extern
3007 #endif
3008 void s1376();
3009 #ifndef  S1377
3010 extern
3011 #endif
3012 void s1377();
3013 #ifndef  S1378
3014 extern
3015 #endif
3016 void s1378();
3017 #ifndef  S1381
3018 extern
3019 #endif
3020 void s1381();
3021 #ifndef  S1382
3022 extern
3023 #endif
3024 void s1382();
3025 #ifndef  S1384
3026 extern
3027 #endif
3028 void s1384();
3029 #ifndef  S1385
3030 extern
3031 #endif
3032 void s1385();
3033 #ifndef  S1393
3034 extern
3035 #endif
3036 void s1393();
3037 #ifndef  S1399
3038 extern
3039 #endif
3040 void s1399();
3041 #ifndef  S1435
3042 extern
3043 #endif
3044 void s1435();
3045 #ifndef  S1436
3046 extern
3047 #endif
3048 void s1436();
3049 #ifndef  S1437
3050 extern
3051 #endif
3052 void s1437();
3053 #ifndef  S1438
3054 extern
3055 #endif
3056 void s1438();
3057 #ifndef  S1452
3058 extern
3059 #endif
3060 void s1452();
3061 #ifndef S1500
3062 extern
3063 #endif
3064 void s1500();
3065 #ifndef S1504
3066 extern
3067 #endif
3068 void s1504();
3069 #ifndef S1505
3070 extern
3071 #endif
3072 void s1505();
3073 #ifndef S1507
3074 extern
3075 #endif
3076 void s1507();
3077 #ifndef S1512
3078 extern
3079 #endif
3080 void s1512();
3081 #ifndef S1513
3082 extern
3083 #endif
3084 void s1513();
3085 #ifndef S1516
3086 extern
3087 #endif
3088 void s1516();
3089 #ifndef S1517
3090 extern
3091 #endif
3092 void s1517();
3093 #ifndef S1520
3094 extern
3095 #endif
3096 void s1520();
3097 #ifndef S1521
3098 extern
3099 #endif
3100 SISLCurve *s1521();
3101 #ifndef S1528
3102 extern
3103 #endif
3104 void s1528();
3105 #ifndef S1531
3106 extern
3107 #endif
3108 void s1531();
3109 #ifndef S1540
3110 extern
3111 #endif
3112 void s1540();
3113 #ifndef S1541
3114 extern
3115 #endif
3116 void s1541();
3117 #ifndef  S1604
3118 extern
3119 #endif
3120 void s1604();
3121 #ifndef  S1605
3122 extern
3123 #endif
3124 void s1605();
3125 #ifndef  S1612
3126 extern
3127 #endif
3128 void s1612();
3129 #ifndef  S1613BEZ
3130 extern
3131 #endif
3132 void s1613bez();
3133 #ifndef S1614
3134 extern
3135 #endif
3136 void s1614 ();
3137 #ifndef S1615
3138 extern
3139 #endif
3140 void s1615 ();
3141 #ifndef S1616
3142 extern
3143 #endif
3144 void s1616 ();
3145 #ifndef S1617
3146 extern
3147 #endif
3148 void s1617 ();
3149 #ifndef S1618
3150 extern
3151 #endif
3152 void s1618 ();
3153 #ifndef S1619
3154 extern
3155 #endif
3156 void s1619 ();
3157 #ifndef  S1700
3158 extern
3159 #endif
3160 void s1700();
3161 #ifndef  S1701
3162 extern
3163 #endif
3164 void s1701();
3165 #ifndef  S1705
3166 extern
3167 #endif
3168 void s1705();
3169 #ifndef  S1707
3170 extern
3171 #endif
3172 void s1707();
3173 #ifndef  S1708
3174 extern
3175 #endif
3176 void s1708();
3177 #ifndef  S1741
3178 extern
3179 #endif
3180 void s1741();
3181 #ifndef S1753
3182 extern
3183 #endif
3184 void s1753();
3185 #ifndef S1754
3186 extern
3187 #endif
3188 void s1754();
3189 #ifndef S1755
3190 extern
3191 #endif
3192 void s1755();
3193 #ifndef  S1770
3194 extern
3195 #endif
3196 void s1770();
3197 #ifndef  S1770_2D
3198 extern
3199 #endif
3200 void s1770_2D();
3201 #ifndef  S1771
3202 extern
3203 #endif
3204 void s1771();
3205 #ifndef  S1772
3206 extern
3207 #endif
3208 void s1772();
3209 #ifndef  S1773
3210 extern
3211 #endif
3212 void s1773();
3213 #ifndef  S1780
3214 extern
3215 #endif
3216 void s1780();
3217 #ifndef  S1785
3218 extern
3219 #endif
3220 void s1785();
3221 #ifndef  S1786
3222 extern
3223 #endif
3224 void s1786();
3225 #ifndef  S1787
3226 extern
3227 #endif
3228 void s1787();
3229 #ifndef  S1788
3230 extern
3231 #endif
3232 void s1788();
3233 #ifndef  S1789
3234 extern
3235 #endif
3236 void s1789();
3237 #ifndef  S1790
3238 extern
3239 #endif
3240 void s1790();
3241 #ifndef  S1791
3242 extern
3243 #endif
3244 int s1791();
3245 #ifndef  S1792
3246 extern
3247 #endif
3248 double s1792();
3249 #ifndef  S1795
3250 extern
3251 #endif
3252 void s1795();
3253 #ifndef  S1796
3254 extern
3255 #endif
3256 void s1796();
3257 #ifndef  S1797
3258 extern
3259 #endif
3260 void s1797();
3261 #ifndef  S1830
3262 extern
3263 #endif
3264 void s1830();
3265 #ifndef  S1834
3266 extern
3267 #endif
3268 void s1834();
3269 #ifndef  S1839
3270 extern
3271 #endif
3272 void s1839();
3273 #ifndef  S1840
3274 extern
3275 #endif
3276 void s1840();
3277 #ifndef  S1880
3278 extern
3279 #endif
3280 void s1880();
3281 #ifndef S1890
3282 extern
3283 #endif
3284 void s1890();
3285 #ifndef S1891
3286 extern
3287 #endif
3288 void s1891();
3289 #ifndef S1893
3290 extern
3291 #endif
3292 void s1893();
3293 #ifndef S1894
3294 extern
3295 #endif
3296 void s1894();
3297 #ifndef S1896
3298 extern
3299 #endif
3300 void s1896();
3301 #ifndef S1897
3302 extern
3303 #endif
3304 void s1897();
3305 #ifndef S1900
3306 extern
3307 #endif
3308 void s1900();
3309 #ifndef S1901
3310 extern
3311 #endif
3312 void s1901();
3313 #ifndef S1902
3314 extern
3315 #endif
3316 void s1902();
3317 #ifndef S1903
3318 extern
3319 #endif
3320 void s1903();
3321 #ifndef S1904
3322 extern
3323 #endif
3324 void s1904();
3325 #ifndef S1905
3326 extern
3327 #endif
3328 void s1905();
3329 #ifndef S1906
3330 extern
3331 #endif
3332 void s1906();
3333 #ifndef S1907
3334 extern
3335 #endif
3336 void s1907();
3337 #ifndef S1908
3338 extern
3339 #endif
3340 void s1908();
3341 #ifndef S1909
3342 extern
3343 #endif
3344 void s1909();
3345 #ifndef S1910
3346 extern
3347 #endif
3348 void s1910();
3349 #ifndef S1911
3350 extern
3351 #endif
3352 void s1911();
3353 #ifndef S1912
3354 extern
3355 #endif
3356 void s1912();
3357 #ifndef S1916
3358 extern
3359 #endif
3360 void s1916();
3361 #ifndef S1917
3362 extern
3363 #endif
3364 void s1917();
3365 #ifndef S1918
3366 extern
3367 #endif
3368 void s1918();
3369 #ifndef S1919
3370 extern
3371 #endif
3372 void s1919();
3373 #ifndef S1924
3374 extern
3375 #endif
3376 void s1924();
3377 #ifndef S1925
3378 extern
3379 #endif
3380 void s1925();
3381 #ifndef S1926
3382 extern
3383 #endif
3384 void s1926();
3385 #ifndef S1927
3386 extern
3387 #endif
3388 void s1927();
3389 #ifndef S1931
3390 extern
3391 #endif
3392 void s1931();
3393 #ifndef S1931UNIT
3394 extern
3395 #endif
3396 void s1931unit();
3397 #ifndef S1932
3398 extern
3399 #endif
3400 void s1932();
3401 #ifndef S1933
3402 extern
3403 #endif
3404 void s1933();
3405 #ifndef S1934
3406 extern
3407 #endif
3408 void s1934();
3409 #ifndef S1935
3410 extern
3411 #endif
3412 void s1935();
3413 #ifndef S1936
3414 extern
3415 #endif
3416 void s1936();
3417 #ifndef S1937
3418 extern
3419 #endif
3420 void s1937();
3421 #ifndef S1938
3422 extern
3423 #endif
3424 void s1938();
3425 #ifndef S1940
3426 extern
3427 #endif
3428 void s1940();
3429 #ifndef S1941
3430 extern
3431 #endif
3432 void s1941();
3433 #ifndef S1942
3434 extern
3435 #endif
3436 void s1942();
3437 #ifndef S1943
3438 extern
3439 #endif
3440 void s1943();
3441 #ifndef S1944
3442 extern
3443 #endif
3444 void s1944();
3445 #ifndef S1945
3446 extern
3447 #endif
3448 void s1945();
3449 #ifndef S1946
3450 extern
3451 #endif
3452 void s1946();
3453 #ifndef S1947
3454 extern
3455 #endif
3456 void s1947();
3457 #ifndef S1948
3458 extern
3459 #endif
3460 void s1948();
3461 #ifndef S1949
3462 extern
3463 #endif
3464 void s1949();
3465 #ifndef S1950
3466 extern
3467 #endif
3468 void s1950();
3469 #ifndef S1951
3470 extern
3471 #endif
3472 void s1951();
3473 #ifndef  S1956
3474 extern
3475 #endif
3476 void s1956();
3477 #ifndef  S1959
3478 extern
3479 #endif
3480 void s1959();
3481 #ifndef  S1960
3482 extern
3483 #endif
3484 void s1960();
3485 #ifndef S1990
3486 extern
3487 #endif
3488 void s1990();
3489 #ifndef  S1991
3490 extern
3491 #endif
3492 void s1991();
3493 #ifndef  S1992
3494 extern
3495 #endif
3496 void s1992();
3497 #ifndef  S1992
3498 extern
3499 #endif
3500 void s1992cu();
3501 #ifndef  S1992
3502 extern
3503 #endif
3504 void s1992su();
3505 #ifndef  S1993
3506 extern
3507 #endif
3508 void s1993();
3509 #ifndef  S1994
3510 extern
3511 #endif
3512 void s1994();
3513 #ifndef  S2501
3514 extern
3515 #endif
3516 void s2501();
3517 #ifndef  S2503
3518 extern
3519 #endif
3520 void s2503();
3521 #ifndef  S2505
3522 extern
3523 #endif
3524 void s2505();
3525 #ifndef  S2507
3526 extern
3527 #endif
3528 void s2507();
3529 #ifndef  S2509
3530 extern
3531 #endif
3532 void s2509();
3533 #ifndef  S2511
3534 extern
3535 #endif
3536 void s2511();
3537 #ifndef  S2512
3538 extern
3539 #endif
3540 void s2512();
3541 #ifndef  S2513
3542 extern
3543 #endif
3544 void s2513();
3545 #ifndef  S2514
3546 extern
3547 #endif
3548 void s2514();
3549 #ifndef  S2515
3550 extern
3551 #endif
3552 void s2515();
3553 #ifndef  S2516
3554 extern
3555 #endif
3556 void s2516();
3557 #ifndef  S2533
3558 extern
3559 #endif
3560 void s2533();
3561 #ifndef  S2534
3562 extern
3563 #endif
3564 void s2534();
3565 #ifndef  S2535
3566 extern
3567 #endif
3568 void s2535();
3569 #ifndef  S2541
3570 extern
3571 #endif
3572 void s2541();
3573 #ifndef  S2543
3574 extern
3575 #endif
3576 void s2543();
3577 #ifndef  S2551
3578 extern
3579 #endif
3580 void s2551();
3581 #ifndef  S2554
3582 extern
3583 #endif
3584 void s2554();
3585 #ifndef  S2555
3586 extern
3587 #endif
3588 void s2555();
3589 #ifndef  S2557
3590 extern
3591 #endif
3592 void s2557();
3593 #ifndef  S2558
3594 extern
3595 #endif
3596 void s2558();
3597 #ifndef  S2560
3598 extern
3599 #endif
3600 void s2560();
3601 #ifndef  S2561
3602 extern
3603 #endif
3604 void s2561();
3605 #ifndef  S6ADDCURVE
3606 extern
3607 #endif
3608 void s6addcurve();
3609 #ifndef  S6AFFDIST
3610 extern
3611 #endif
3612 double s6affdist();
3613 #ifndef  S6ANG
3614 extern
3615 #endif
3616 double s6ang();
3617 #ifndef  S6ANGLE
3618 extern
3619 #endif
3620 double s6angle();
3621 #ifndef  S6CHPAR
3622 extern
3623 #endif
3624 void s6chpar();
3625 #ifndef  S6CRSS
3626 extern
3627 #endif
3628 void s6crss();
3629 #ifndef  S6CRVCHECK
3630 extern
3631 #endif
3632 void s6crvcheck();
3633 #ifndef  S6CURVATURE
3634 extern
3635 #endif
3636 void s6curvature();
3637 #ifndef  s6CURVRAD
3638 extern
3639 #endif
3640 void s6curvrad();
3641 #ifndef  S6DECASTELJAU
3642 extern
3643 #endif
3644 void s6deCasteljau();
3645 #ifndef  S6DECOMP
3646 extern
3647 #endif
3648 void s6decomp();
3649 #ifndef  S6DEGNORM
3650 extern
3651 #endif
3652 void s6degnorm();
3653 #ifndef  S6DERTOPT
3654 extern
3655 #endif
3656 void s6dertopt();
3657 #ifndef  S6DIFF
3658 extern
3659 #endif
3660 void s6diff();
3661 #ifndef  S6DIST
3662 extern
3663 #endif
3664 double s6dist();
3665 #ifndef  S6DLINE
3666 extern
3667 #endif
3668 double s6dline();
3669 #ifndef  S6DPLANE
3670 extern
3671 #endif
3672 double  s6dplane();
3673 #ifndef  S6EQUAL
3674 extern
3675 #endif
3676 int s6equal();
3677 #ifndef  S6ERR
3678 extern
3679 #endif
3680 void s6err();
3681 #ifndef  S6EXISTBOX
3682 extern
3683 #endif
3684 int s6existbox();
3685 #ifndef S6FINDFAC
3686 extern
3687 #endif
3688 void s6findfac();
3689 #ifndef S6FNDINTVL
3690 extern
3691 #endif
3692 void s6fndintvl();
3693 #ifndef  S6HERM
3694 extern
3695 #endif
3696 void s6herm();
3697 #ifndef  S6HERMITE_BEZIER
3698 extern
3699 #endif
3700 void s6hermite_bezier();
3701 #ifndef  S6IDCON
3702 extern
3703 #endif
3704 void s6idcon();
3705 #ifndef  S6IDCPT
3706 extern
3707 #endif
3708 void s6idcpt();
3709 #ifndef  S6IDEDG
3710 extern
3711 #endif
3712 void s6idedg();
3713 #ifndef  S6IDENTIFY
3714 extern
3715 #endif
3716 void     s6identify();
3717 #ifndef  S6IDGET
3718 extern
3719 #endif
3720 void s6idget();
3721 #ifndef  S6IDINT
3722 extern
3723 #endif
3724 void s6idint();
3725 #ifndef  S6IDKLIST
3726 extern
3727 #endif
3728 void s6idklist();
3729 #ifndef  S6IDKPT
3730 extern
3731 #endif
3732 void s6idkpt();
3733 #ifndef  S6IDLIS
3734 extern
3735 #endif
3736 void s6idlis();
3737 #ifndef  S6IDNPT
3738 extern
3739 #endif
3740 void s6idnpt();
3741 #ifndef  S6IDPUT
3742 extern
3743 #endif
3744 void s6idput();
3745 #ifndef S6INV4
3746 extern
3747 #endif
3748 void s6inv4 ();
3749 #ifndef  S6INVERT
3750 extern
3751 #endif
3752 void s6invert();
3753 #ifndef  S6KNOTMULT
3754 extern
3755 #endif
3756 int s6knotmult();
3757 #ifndef  S6LENGTH
3758 extern
3759 #endif
3760 double s6length();
3761 #ifndef  S6LINE
3762 extern
3763 #endif
3764 void s6line();
3765 #ifndef  S6LPRJ
3766 extern
3767 #endif
3768 double s6lprj();
3769 #ifndef  S6LUFACP
3770 extern
3771 #endif
3772 void s6lufacp();
3773 #ifndef  S6LUSOLP
3774 extern
3775 #endif
3776 void s6lusolp();
3777 #ifndef  S6METRIC
3778 extern
3779 #endif
3780 void s6metric();
3781 #ifndef  S6MOVE
3782 extern
3783 #endif
3784 void s6move();
3785 #ifndef S6MULVEC
3786 extern
3787 #endif
3788 void s6mulvec ();
3789 #ifndef  S6MVEC
3790 extern
3791 #endif
3792 void s6mvec();
3793 #ifndef  S6NEWBOX
3794 extern
3795 #endif
3796 void s6newbox();
3797 #ifndef  S6NORM
3798 extern
3799 #endif
3800 double s6norm();
3801 #ifndef  S6RATDER
3802 extern
3803 #endif
3804 void s6ratder();
3805 #ifndef  S6ROTAX
3806 extern
3807 #endif
3808 void s6rotax();
3809 #ifndef S6SCPR
3810 extern
3811 #endif
3812 double s6scpr();
3813 #ifndef S6ROTMAT
3814 extern
3815 #endif
3816 void s6rotmat ();
3817 #ifndef S6SCHOEN
3818 extern
3819 #endif
3820 double s6schoen();
3821 #ifndef  S6SORTPAR
3822 extern
3823 #endif
3824 void s6sortpar();
3825 #ifndef S6SRATDER
3826 extern
3827 #endif
3828 void s6sratder();
3829 #ifndef S6STRIDER
3830 extern
3831 #endif
3832 void s6strider();
3833 #ifndef  S6TAKEUNION
3834 extern
3835 #endif
3836 void s6takeunion();
3837 #ifndef  S6TWONORM
3838 extern
3839 #endif
3840 void s6twonorm();
3841 #ifndef S9ADSIMP
3842 extern
3843 #endif
3844 double s9adsimp();
3845 #ifndef S9ADSTEP
3846 extern
3847 #endif
3848 double s9adstep();
3849 #ifndef S9BOUNDIMP
3850 extern
3851 #endif
3852 void s9boundimp();
3853 #ifndef  S9BOUNDIT
3854 extern
3855 #endif
3856 void s9boundit();
3857 #ifndef  S9CLIPIMP
3858 extern
3859 #endif
3860 void s9clipimp();
3861 #ifndef  S9CLIPIT
3862 extern
3863 #endif
3864 void s9clipit();
3865 #ifndef  S9CONMARCH
3866 extern
3867 #endif
3868 void s9conmarch();
3869 #ifndef  S9ITERATE
3870 extern
3871 #endif
3872 void s9iterate();
3873 #ifndef  S9ITERIMP
3874 extern
3875 #endif
3876 void s9iterimp();
3877 #ifndef  S9SIMPLE_KNOT
3878 extern
3879 #endif
3880 void 	 s9simple_knot();
3881 #ifndef  S9SURMARCH
3882 extern
3883 #endif
3884 void s9surmarch();
3885 #ifndef  SH1260
3886 extern
3887 #endif
3888 void sh1260();
3889 #ifndef  SH1261
3890 extern
3891 #endif
3892 void sh1261();
3893 #ifndef  SH1262
3894 extern
3895 #endif
3896 void sh1262();
3897 #ifndef  SH1263
3898 extern
3899 #endif
3900 void sh1263();
3901 #ifndef  SH1365
3902 extern
3903 #endif
3904 void sh1365();
3905 #ifndef  SH1369
3906 extern
3907 #endif
3908 void sh1369();
3909 #ifndef  SH1371
3910 extern
3911 #endif
3912 void sh1371();
3913 #ifndef  SH1372
3914 extern
3915 #endif
3916 void sh1372();
3917 #ifndef  SH1373
3918 extern
3919 #endif
3920 void sh1373();
3921 #ifndef  SH1374
3922 extern
3923 #endif
3924 void sh1374();
3925 #ifndef  SH1375
3926 extern
3927 #endif
3928 void sh1375();
3929 #ifndef  SH1460
3930 extern
3931 #endif
3932 void sh1460();
3933 #ifndef  SH1461
3934 extern
3935 #endif
3936 void sh1461();
3937 #ifndef  SH1462
3938 extern
3939 #endif
3940 void sh1462();
3941 #ifndef  SH1463
3942 extern
3943 #endif
3944 void sh1463();
3945 #ifndef  SH1464
3946 extern
3947 #endif
3948 void sh1464();
3949 #ifndef  SH1465
3950 extern
3951 #endif
3952 void sh1465();
3953 #ifndef  SH1466
3954 extern
3955 #endif
3956 void sh1466();
3957 #ifndef  SH1467
3958 extern
3959 #endif
3960 void sh1467();
3961 #ifndef  SH1502
3962 extern
3963 #endif
3964 void sh1502();
3965 #ifndef  SH1503
3966 extern
3967 #endif
3968 void sh1503();
3969 #ifndef  SH1510
3970 extern
3971 #endif
3972 void sh1510();
3973 #ifndef  SH1511
3974 extern
3975 #endif
3976 void sh1511();
3977 #ifndef  SH1761
3978 extern
3979 #endif
3980 void sh1761();
3981 #ifndef  SH1762
3982 extern
3983 #endif
3984 void sh1762();
3985 #ifndef  SH1779
3986 extern
3987 #endif
3988 void sh1779();
3989 #ifndef  SH1779_AT
3990 extern
3991 #endif
3992 void sh1779_at();
3993 #ifndef  SH1780
3994 extern
3995 #endif
3996 void sh1780();
3997 #ifndef  SH1780_AT
3998 extern
3999 #endif
4000 void sh1780_at();
4001 #ifndef  SH1781
4002 extern
4003 #endif
4004 void sh1781();
4005 #ifndef  SH1781_AT
4006 extern
4007 #endif
4008 void sh1781_at();
4009 #ifndef  SH1782
4010 extern
4011 #endif
4012 void sh1782();
4013 #ifndef  SH1783
4014 extern
4015 #endif
4016 void sh1783();
4017 #ifndef  SH1784
4018 extern
4019 #endif
4020 void sh1784();
4021 #ifndef  SH1786
4022 extern
4023 #endif
4024 void sh1786();
4025 #ifndef  SH1787
4026 extern
4027 #endif
4028 void sh1787();
4029 #ifndef  SH1790
4030 extern
4031 #endif
4032 void sh1790();
4033 #ifndef SH1794
4034 extern
4035 #endif
4036 void sh1794();
4037 #ifndef  SH1830
4038 extern
4039 #endif
4040 void sh1830();
4041 #ifndef  SH1831
4042 extern
4043 #endif
4044 void sh1831();
4045 #ifndef  SH1834
4046 extern
4047 #endif
4048 void sh1834();
4049 #ifndef  SH1839
4050 extern
4051 #endif
4052 void sh1839();
4053 #ifndef  SH1850
4054 extern
4055 #endif
4056 void sh1850();
4057 #ifndef  SH1851
4058 extern
4059 #endif
4060 void sh1851();
4061 #ifndef  SH1852
4062 extern
4063 #endif
4064 void sh1852();
4065 #ifndef  SH1853
4066 extern
4067 #endif
4068 void sh1853();
4069 #ifndef  SH1854
4070 extern
4071 #endif
4072 void sh1854();
4073 #ifndef  SH1855
4074 extern
4075 #endif
4076 void sh1855();
4077 #ifndef  SH1856
4078 extern
4079 #endif
4080 void sh1856();
4081 #ifndef  SH1857
4082 extern
4083 #endif
4084 void sh1857();
4085 #ifndef  SH1858
4086 extern
4087 #endif
4088 void sh1858();
4089 #ifndef  SH1859
4090 extern
4091 #endif
4092 void sh1859();
4093 #ifndef  SH1860
4094 extern
4095 #endif
4096 void sh1860();
4097 #ifndef  SH1870
4098 extern
4099 #endif
4100 void sh1870();
4101 #ifndef  SH1871
4102 extern
4103 #endif
4104 void sh1871();
4105 #ifndef  SH1922
4106 extern
4107 #endif
4108 void sh1922();
4109 #ifndef  SH1923
4110 extern
4111 #endif
4112 void sh1923();
4113 #ifndef  SH1924
4114 extern
4115 #endif
4116 void sh1924();
4117 #ifndef  SH1925
4118 extern
4119 #endif
4120 void sh1925();
4121 #ifndef  SH1926
4122 extern
4123 #endif
4124 void sh1926();
4125 #ifndef  SH1927
4126 extern
4127 #endif
4128 void sh1927();
4129 #ifndef  SH1928
4130 extern
4131 #endif
4132 void sh1928();
4133 #ifndef  SH1929
4134 extern
4135 #endif
4136 void sh1929();
4137 #ifndef  SH1930
4138 extern
4139 #endif
4140 void sh1930();
4141 #ifndef  SH1992
4142 extern
4143 #endif
4144 void sh1992();
4145 #ifndef  SH1992CU
4146 extern
4147 #endif
4148 void sh1992cu();
4149 #ifndef  SH1992SU
4150 extern
4151 #endif
4152 void sh1992su();
4153 #ifndef  SH1993
4154 extern
4155 #endif
4156 void sh1993();
4157 #ifndef  SH1994
4158 extern
4159 #endif
4160 void sh1994();
4161 #ifndef SH6CLOSEVERT
4162 extern
4163 #endif
4164 void sh6closevert();
4165 #ifndef SH6CVVERT
4166 extern
4167 #endif
4168 void sh6cvvert();
4169 #ifndef  SH6COMEDG
4170 extern
4171 #endif
4172 void sh6comedg();
4173 #ifndef  SH6CONNECT
4174 extern
4175 #endif
4176 void sh6connect();
4177 #ifndef  SH6COUNT
4178 extern
4179 #endif
4180 int sh6count();
4181 #ifndef  SH6DEGEN
4182 extern
4183 #endif
4184 void sh6degen();
4185 #ifndef  SH6DISCONNECT
4186 extern
4187 #endif
4188 void sh6disconnect();
4189 #ifndef  SH6EDGPOINT
4190 extern
4191 #endif
4192 void sh6edgpoint();
4193 #ifndef  SH6EDGRED
4194 extern
4195 #endif
4196 void sh6edgred();
4197 #ifndef  SH6EVALINT
4198 extern
4199 #endif
4200 void sh6evalint();
4201 #ifndef  SH6FINDSPLIT
4202 extern
4203 #endif
4204 void sh6findsplit();
4205 #ifndef  SH6FLOOP
4206 extern
4207 #endif
4208 void sh6floop();
4209 #ifndef  SH6GETGEOM
4210 extern
4211 #endif
4212 void sh6getgeom();
4213 #ifndef  SH6GETLIST
4214 extern
4215 #endif
4216 void sh6getlist();
4217 #ifndef  SH6GETMAIN
4218 extern
4219 #endif
4220 SISLIntpt *sh6getmain();
4221 #ifndef  SH6GETNEXT
4222 extern
4223 #endif
4224 SISLIntpt *sh6getnext();
4225 #ifndef  SH6GETNHBRS
4226 extern
4227 #endif
4228 void sh6getnhbrs();
4229 #ifndef  SH6GETOTHER
4230 extern
4231 #endif
4232 void sh6getother();
4233 #ifndef  SH6GETPREV
4234 extern
4235 #endif
4236 int sh6getprev();
4237 #ifndef  SH6GETSEGDIV
4238 extern
4239 #endif
4240 int sh6getsegdiv();
4241 #ifndef  SH6GETTOP
4242 extern
4243 #endif
4244 void sh6gettop();
4245 #ifndef  SH6GETTOPHLP
4246 extern
4247 #endif
4248 void sh6gettophlp();
4249 #ifndef  SH6IDALLEDG
4250 extern
4251 #endif
4252 void sh6idalledg();
4253 #ifndef  SH6IDCON
4254 extern
4255 #endif
4256 void sh6idcon ();
4257 #ifndef  SH6IDFCROSS
4258 extern
4259 #endif
4260 void sh6idfcross();
4261 #ifndef  SH6IDGET
4262 extern
4263 #endif
4264 void sh6idget();
4265 #ifndef  SH6IDKPT
4266 extern
4267 #endif
4268 void sh6idkpt();
4269 #ifndef  SH6IDLIS
4270 extern
4271 #endif
4272 void sh6idlis();
4273 #ifndef  SH6IDNPT
4274 extern
4275 #endif
4276 void sh6idnpt();
4277 #ifndef  SH6IDNEWUNITE
4278 extern
4279 #endif
4280 void sh6idnewunite();
4281 #ifndef  SH6IDPUT
4282 extern
4283 #endif
4284 void sh6idput();
4285 #ifndef  SH6IDRMCROSS
4286 extern
4287 #endif
4288 void sh6idrmcross();
4289 #ifndef  SH6IDSPLIT
4290 extern
4291 #endif
4292 void sh6idsplit();
4293 #ifndef  SH6IDUNITE
4294 extern
4295 #endif
4296 void sh6idunite();
4297 #ifndef  SH6INSERT
4298 extern
4299 #endif
4300 void sh6insert();
4301 #ifndef  SH6INSERTPT
4302 extern
4303 #endif
4304 void sh6insertpt();
4305 #ifndef  SH6ISCONNECT
4306 extern
4307 #endif
4308 int sh6isconnect();
4309 #ifndef  SH6ISHELP
4310 extern
4311 #endif
4312 int sh6ishelp();
4313 #ifndef  SH6ISINSIDE
4314 extern
4315 #endif
4316 void sh6isinside();
4317 #ifndef  SH6ISMAIN
4318 extern
4319 #endif
4320 int sh6ismain();
4321 #ifndef  SH6NMBHELP
4322 extern
4323 #endif
4324 int sh6nmbhelp();
4325 #ifndef  SH6NMBMAIN
4326 extern
4327 #endif
4328 int sh6nmbmain ();
4329 #ifndef  SH6PTOBJ
4330 extern
4331 #endif
4332 void sh6ptobj();
4333 #ifndef  SH6PUTSING
4334 extern
4335 #endif
4336 void sh6putsing();
4337 #ifndef  SH6PUTTOUCH
4338 extern
4339 #endif
4340 void sh6puttouch();
4341 #ifndef  SH6RED
4342 extern
4343 #endif
4344 void sh6red();
4345 #ifndef  SH6REMCON
4346 extern
4347 #endif
4348 void sh6remcon();
4349 #ifndef  SH6REMOVEPT
4350 extern
4351 #endif
4352 void sh6removept();
4353 #ifndef  SH6SEPCRV
4354 extern
4355 #endif
4356 void sh6sepcrv();
4357 #ifndef  SH6SETCNSDIR
4358 extern
4359 #endif
4360 void sh6setcnsdir();
4361 #ifndef  SH6SETDIR
4362 extern
4363 #endif
4364 void sh6setdir();
4365 #ifndef SH6SETSEG
4366 extern
4367 #endif
4368 void sh6setseg();
4369 #ifndef  SH6SETTOP
4370 extern
4371 #endif
4372 void sh6settop();
4373 #ifndef  SH6SPLITGEOM
4374 extern
4375 #endif
4376 void sh6splitgeom();
4377 #ifndef  SH6TOHELP
4378 extern
4379 #endif
4380 void sh6tohelp();
4381 #ifndef  SH6TOMAIN
4382 extern
4383 #endif
4384 void sh6tomain();
4385 #ifndef  SH6TRIMLIST
4386 extern
4387 #endif
4388 void sh6trimlist();
4389 #ifndef  CRV_ARC_TANG
4390 extern
4391 #endif
4392 void crv_arc_tang();
4393 #ifndef  CRV_CRV_TANG
4394 extern
4395 #endif
4396 void crv_crv_tang();
4397 #ifndef  CRV_LIN_TANG
4398 extern
4399 #endif
4400 void crv_lin_tang();
4401 #ifndef  EV_CV_OFF
4402 extern
4403 #endif
4404 void ev_cv_off();
4405 #ifndef  EVAL_2_CRV
4406 extern
4407 #endif
4408 void eval_2_crv();
4409 #ifndef  EVAL_CRV_ARC
4410 extern
4411 #endif
4412 void eval_crv_arc();
4413 #ifndef  HP_S1880
4414 extern
4415 #endif
4416 void hp_s1880();
4417 #ifndef  INT_JOIN_PER
4418 extern
4419 #endif
4420 void int_join_per();
4421 #ifndef  MAKE_CV_KREG
4422 extern
4423 #endif
4424 void make_cv_kreg();
4425 #ifndef  MAKE_SF_KREG
4426 extern
4427 #endif
4428 void make_sf_kreg();
4429 #ifndef  MAKE_TRACKS
4430 extern
4431 #endif
4432 void make_tracks();
4433 #ifndef  NEWKNOTS
4434 extern
4435 #endif
4436 void newknots();
4437 #ifndef  PICK_CRV_SF
4438 extern
4439 #endif
4440 void pick_crv_sf();
4441 #ifndef  PO_CRV_TANG
4442 extern
4443 #endif
4444 void po_crv_tang();
4445 #ifndef  REFINE_ALL
4446 extern
4447 #endif
4448 void refine_all();
4449 #ifndef  SH_1D_DIV
4450 extern
4451 #endif
4452 void sh_1d_div();
4453 #ifndef  SH_DIV_CRV
4454 extern
4455 #endif
4456 void sh_div_crv();
4457 #ifndef  SH_DIV_SURF
4458 extern
4459 #endif
4460 void sh_div_surf();
4461 #ifndef  SH_SET_AT
4462 extern
4463 #endif
4464 void sh_set_at();
4465 #ifndef  SHAPE
4466 extern
4467 #endif
4468 void shape();
4469 #ifndef  SHCHECKPUT
4470 extern
4471 #endif
4472 void shcheckput();
4473 #ifndef  SHCHECKTYPE
4474 extern
4475 #endif
4476 int shchecktype();
4477 #ifndef  SHCSFSING
4478 extern
4479 #endif
4480 void shcsfsing();
4481 #ifndef  SHEVALC
4482 extern
4483 #endif
4484 void shevalc();
4485 #ifndef  SHMKHLPPTS
4486 extern
4487 #endif
4488 void shmkhlppts();
4489 #ifndef  SHSING
4490 extern
4491 #endif
4492 void shsing();
4493 #ifndef  SPLI_SILH
4494 extern
4495 #endif
4496 void spli_silh();
4497 #ifndef  TEST_CYCLIC_KNOTS
4498 extern
4499 #endif
4500 void test_cyclic_knots();
4501 
4502 #endif /* End forward declarations of  SISL C routines */
4503 
4504 #if defined(__cplusplus)
4505     }
4506 #endif
4507 
4508 #endif  /* SISLP_INCLUDED */
4509 
4510 /* DO NOT ADD ANYTHING AFTER THIS LINE */
4511