ref: 14e5a6c6bd5b3e8a936cd2184f9e2be59376357b
dir: /src/cg/cst_vc.h/
/*********************************************************************/ /* */ /* Nagoya Institute of Technology, Aichi, Japan, */ /* Nara Institute of Science and Technology, Nara, Japan */ /* and */ /* Carnegie Mellon University, Pittsburgh, PA */ /* Copyright (c) 2003-2004 */ /* All Rights Reserved. */ /* */ /* Permission is hereby granted, free of charge, to use and */ /* distribute this software and its documentation without */ /* restriction, including without limitation the rights to use, */ /* copy, modify, merge, publish, distribute, sublicense, and/or */ /* sell copies of this work, and to permit persons to whom this */ /* work is furnished to do so, subject to the following conditions: */ /* */ /* 1. The code must retain the above copyright notice, this list */ /* of conditions and the following disclaimer. */ /* 2. Any modifications must be clearly marked as such. */ /* 3. Original authors' names are not deleted. */ /* */ /* NAGOYA INSTITUTE OF TECHNOLOGY, NARA INSTITUTE OF SCIENCE AND */ /* TECHNOLOGY, CARNEGIE MELLON UNIVERSITY, AND THE CONTRIBUTORS TO */ /* THIS WORK DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, */ /* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, */ /* IN NO EVENT SHALL NAGOYA INSTITUTE OF TECHNOLOGY, NARA */ /* INSTITUTE OF SCIENCE AND TECHNOLOGY, CARNEGIE MELLON UNIVERSITY, */ /* NOR THE CONTRIBUTORS BE LIABLE FOR ANY SPECIAL, INDIRECT OR */ /* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM */ /* LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, */ /* NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN */ /* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ /* */ /*********************************************************************/ /* */ /* Author : Tomoki Toda (tomoki@ics.nitech.ac.jp) */ /* Date : June 2004 */ /* */ /* Functions shared between mlpg and mlsa */ /*-------------------------------------------------------------------*/ #ifndef __CST_VC_H #define __CST_VC_H typedef struct LVECTOR_STRUCT { long length; long *data; long *imag; } *LVECTOR; typedef struct DVECTOR_STRUCT { long length; double *data; double *imag; } *DVECTOR; typedef struct DMATRIX_STRUCT { long row; long col; double **data; double **imag; } *DMATRIX; #define XBOOL int #define XTRUE 1 #define XFALSE 0 #define NODATA NULL #define FABS(x) ((x) >= 0.0 ? (x) : -(x)) #define LABS(x) ((x) >= 0 ? (x) : -(x)) #define MAX(a, b) ((a) > (b) ? (a) : (b)) #define xdvnull() xdvalloc(0) #define xdvnums(length, value) xdvinit((double)(value), 0.0, (double)(length)) #define xdvzeros(length) xdvnums(length, 0.0) LVECTOR xlvalloc(long length); void xlvfree(LVECTOR x); DVECTOR xdvalloc(long length); DVECTOR xdvcut(DVECTOR x, long offset, long length); void xdvfree(DVECTOR vector); double dvmax(DVECTOR x, long *index); double dvmin(DVECTOR x, long *index); DMATRIX xdmalloc(long row, long col); void xdmfree(DMATRIX matrix); DVECTOR xdvinit(double j, double incr, double n); double dvsum(DVECTOR x); #define RANDMAX 32767 #define B0 0x00000001 #define B28 0x10000000 #define B31 0x80000000 #define B31_ 0x7fffffff #define Z 0x00000000 typedef enum {MFALSE, MTRUE} Boolean; #endif /* __CST_VC_H */