00001 #include <stdio.h>
00002 #include <stddef.h>
00003 #include <stdlib.h>
00004 #include "nrutil.h"
00005 #define NR_END 1
00006 #define FREE_ARG char*
00007
00008 float *vector(long nl, long nh, int *status)
00009
00010 {
00011 float *v;
00012 *status=0;
00013 v=(float *)malloc((size_t) ((nh-nl+1+NR_END)*sizeof(float)));
00014 if (!v) {
00015
00016 *status=-1;
00017 }
00018 return v-nl+NR_END;
00019 }
00020
00021 int *ivector(long nl, long nh, int *status)
00022
00023 {
00024 int *v;
00025 *status=0;
00026 v=(int *)malloc((size_t) ((nh-nl+1+NR_END)*sizeof(int)));
00027 if (!v) {
00028
00029 *status=-1;
00030 }
00031 return v-nl+NR_END;
00032 }
00033
00034
00035 unsigned long *lvector(long nl, long nh, int *status)
00036
00037 {
00038 unsigned long *v;
00039 *status=0;
00040 v=(unsigned long *)malloc((size_t) ((nh-nl+1+NR_END)*sizeof(long)));
00041 if (!v){
00042
00043 *status=-1;
00044 }
00045 return v-nl+NR_END;
00046 }
00047
00048 void free_vector(float *v, long nl, long nh)
00049
00050 {
00051 free((FREE_ARG) (v+nl-NR_END));
00052 }
00053
00054 void free_ivector(int *v, long nl, long nh)
00055
00056 {
00057 free((FREE_ARG) (v+nl-NR_END));
00058 }
00059
00060 void free_lvector(unsigned long *v, long nl, long nh)
00061
00062 {
00063 free((FREE_ARG) (v+nl-NR_END));
00064 }
00065
00066
00067