+/*****************************************************************************
+** This is part of the CTSim program
+** Copyright (C) 1983-2000 Kevin Rosenberg
+**
+** $Id: kmath.h,v 1.6 2000/05/02 20:00:25 kevin Exp $
+** $Log: kmath.h,v $
+** Revision 1.6 2000/05/02 20:00:25 kevin
+** *** empty log message ***
+**
+** Revision 1.5 2000/05/02 15:31:39 kevin
+** code cleaning
+**
+** Revision 1.4 2000/04/30 19:17:35 kevin
+** Set up include files for conditional INTERACTIVE_GRAPHICS
+**
+** Revision 1.3 2000/04/28 14:14:16 kevin
+** *** empty log message ***
+**
+**
+** This program is free software; you can redistribute it and/or modify
+** it under the terms of the GNU General Public License (version 2) as
+** published by the Free Software Foundation.
+**
+** This program is distributed in the hope that it will be useful,
+** but WITHOUT ANY WARRANTY; without even the implied warranty of
+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+** GNU General Public License for more details.
+**
+** You should have received a copy of the GNU General Public License
+** along with this program; if not, write to the Free Software
+** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+******************************************************************************/
/******************************************************************************
*
- * FILE IDENTIFICATION
- *
- * File Name: NUMR.H
- * Author: Kevin Rosenberg
- * Purpose: Header file containing definitions for numerical app's
+ * PURPOSE
+ * Header file containing definitions for numerical app's
* Date Started: Nov 84
*
- * DESCRIPTION
- *
- * MODIFICATION LOG
- *
*****************************************************************************/
#ifndef _H_kmath
typedef DMTX_1D *DMTX_2D;
typedef DMTX_2D *DMTX_3D;
+typedef double GRFMTX_2D[3][3];
+typedef double GRFMTX_3D[4][4];
+
union elem_val_un { /* holds an element value */
char c;
int i;
)))))
*/
-
-/* calc_x.c */
-int calc_x(double *x, const double xmin, const double xmax, const int n);
-/* calcpoly.c */
-void calcpoly(const double *a, const int degree, const double *x, double *y, const int n);
-/* gauss.c */
-int gauss(double **a, double *b, double *x, const int num);
+/* minmax.c */
+double fmax(const double a, const double b);
+void minmax_dvector(const double array[], const int pts, double *xmin, double *xmax);
+/* cliprect.c */
+int cliprect(double *x1, double *y1, double *x2, double *y2, const double rect[4]);
/* lnearest.c */
long int lnearest(double x);
-/* lsfit.c */
-int lsfit(double *x, double *y, int n, int degree, double *coeff, FILE *fp);
-/* matprt.c */
-void matprt(const double **m, const int row, const int col, FILE *fp);
/* mtx_disp.c */
void mtx_show(const MTX *mtx);
void mtx_prt(const MTX *mtx, FILE *fp);
int mtx_check(const MTX *mtx, const char *func_name);
/* norm_ang.c */
double norm_ang(double theta);
-/* pntprt.c */
-void pntprt(const double *x, const double *y, const int n, FILE *fp);
-/* pntread.c */
-int pntread(double *x, double *y, int *num, const int maxn, FILE *fp);
-/* poly.c */
-double poly(const double *a, const int degree, const double x);
/* simpson.c */
double simpson(const double xmin, const double xmax, const double *y, const int np);
-/* stddev.c */
-double stddev(const double *y1, const double *y2, const int n, const int df_lost);
-/* vectprt.c */
-void vectprt(const double *v, const int n, FILE *fp);
-/* vectread.c */
-int vectread(double *v, int *n, const int maxn, FILE *fp);
-/* vectsort.c */
-int vectsort(int num_vec, const int dtype, const int num_pts, char *vec1, char *vec2, char *vec3);
+/* clip.c */
+int clipsegment(double *x1, double *y1, double *x2, double *y2, const double u, const double v);
+int clipsector(double *x1, double *y1, double *x2, double *y2, const double u, const double v);
+int clipcircle(double *x1, double *y1, double *x2, double *y2, const double cx, const double cy, const double radius, double t1, double t2);
+int cliptriangle(double *x1, double *y1, double *x2, double *y2, const double u, const double v, const int clip_xaxis);
+/* xform.c */
+void indent_mtx2(GRFMTX_2D m);
+void xlat_mtx2(GRFMTX_2D m, const double x, const double y);
+void scale_mtx2(GRFMTX_2D m, const double sx, const double sy);
+void rot_mtx2(GRFMTX_2D m, const double theta);
+void mult_mtx2(GRFMTX_2D m1, GRFMTX_2D m2, GRFMTX_2D result);
+void xform_mtx2(GRFMTX_2D const m, double *x, double *y);
#endif