︙ | | |
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
+
+
+
|
# Copyright (C) 2000 by Peter J. Gawthrop
###############################################################
## Version control history
###############################################################
## $Id$
## $Log$
## Revision 1.53 2002/06/10 23:22:16 geraint
## Fixed problem with Matlab fsolve failing because of "user function returned Inf or Nan" (fsolve.m, line 245).
##
## Revision 1.52 2002/05/27 14:52:15 geraint
## Parameters in sfun reps are now declared using sympar.h at the top of the
## sfun*.c file instead of in individual functions. This causes the optimisation
## variables (mtt_tmp*) to be declared correctly without causing conflicts in the
## scope of parameter declarations.
##
## Revision 1.51 2002/05/19 13:01:21 geraint
|
︙ | | |
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
|
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
|
-
+
|
arg_init="(MTTNYZ,0.0)"
;;
mtty)
arg_type="ColumnVector"
arg_init="(MTTNY,0.0)"
;;
mttt)
arg_type="const double"
arg_type="double"
arg_init=""
;;
nil)
arg_type="void *"
arg_init="(0x0)"
;;
*)
|
︙ | | |
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
|
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
|
-
+
|
if [ ${i} -lt ${c} ]; then
comma=","
else
comma=""
fi
w=`get_field ${args} ${i}`
get_arg_specific_stuff ${w}
printf "\t${arg_type}\t&${w}${comma}\n"
printf "\tconst ${arg_type}\t&${w}${comma}\n"
done
fi
get_arg_specific_stuff ${output}
cat <<EOF
)
{
static ${arg_type} ${output} ${arg_init};
|
︙ | | |
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
|
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
|
-
-
+
+
-
+
|
printf " if (${c} != args.length ()) usage (\"${fun_name} expected ${c} argument(s): ${s}\");\n\n"
while [ ${i} -lt ${c} ]; do
j=${i}
i=`expr ${i} + 1`
w=`get_field ${s} ${i}` # argument name
get_arg_specific_stuff ${w}
case ${arg_type} in
"const double")
printf " ${arg_type}\t${w}\t= args(${j}).double_value ();\n"
"double")
printf " const ${arg_type}\t${w}\t= args(${j}).double_value ();\n"
;;
ColumnVector | Matrix | *)
printf " ${arg_type}\t${w}\t= args(${j}).%s ();\n" ${vector_value}
printf " const ${arg_type}\t${w}\t= args(${j}).%s ();\n" ${vector_value}
;;
esac
done
}
map_mex_cc_inputs ()
{
|
︙ | | |