00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef HSL_MA86D_H
00010 #define HSL_MA86D_H
00011
00012 #ifndef ma86_default_control
00013 #define ma86_control ma86_control_d
00014 #define ma86_info ma86_info_d
00015 #define ma86_default_control ma86_default_control_d
00016 #define ma86_analyse ma86_analyse_d
00017 #define ma86_factor ma86_factor_d
00018 #define ma86_factor_solve ma86_factor_solve_d
00019 #define ma86_solve ma86_solve_d
00020 #define ma86_finalise ma86_finalise_d
00021 #endif
00022
00023 typedef double ma86pkgtype_d_;
00024 typedef double ma86realtype_d_;
00025
00026
00027 struct ma86_control_d {
00028
00029
00030
00031 int f_arrays;
00032
00033
00034
00035 int diagnostics_level;
00036
00037
00038
00039
00040
00041
00042 int unit_diagnostics;
00043
00044 int unit_error;
00045
00046 int unit_warning;
00047
00048
00049
00050 int nemin;
00051
00052 int nb;
00053
00054
00055
00056 int action;
00057
00058 int nbi;
00059 int pool_size;
00060 ma86realtype_d_ small_;
00061 ma86realtype_d_ static_;
00062 ma86realtype_d_ u;
00063 ma86realtype_d_ umin;
00064 int scaling;
00065 };
00066
00067
00068
00069
00070 struct ma86_info_d {
00071 ma86realtype_d_ detlog;
00072 int detsign;
00073 int flag;
00074 int matrix_rank;
00075 int maxdepth;
00076 int num_delay;
00077 long num_factor;
00078 long num_flops;
00079 int num_neg;
00080 int num_nodes;
00081 int num_nothresh;
00082 int num_perturbed;
00083 int num_two;
00084 int pool_size;
00085 int stat;
00086 ma86realtype_d_ usmall;
00087 };
00088
00089
00090 void ma86_default_control_d(struct ma86_control_d *control);
00091
00092 void ma86_analyse_d(const int n, const int ptr[], const int row[], int order[],
00093 void **keep, const struct ma86_control_d *control,
00094 struct ma86_info_d *info);
00095
00096 void ma86_factor_d(const int n, const int ptr[], const int row[],
00097 const ma86pkgtype_d_ val[], const int order[], void **keep,
00098 const struct ma86_control_d *control, struct ma86_info_d *info,
00099 const ma86realtype_d_ scale[]);
00100
00101 void ma86_factor_solve_d(const int n, const int ptr[], const int row[],
00102 const ma86pkgtype_d_ val[], const int order[], void **keep,
00103 const struct ma86_control_d *control, struct ma86_info_d *info,
00104 const int nrhs, const int ldx, ma86pkgtype_d_ x[],
00105 const ma86realtype_d_ scale[]);
00106
00107 void ma86_solve_d(const int job, const int nrhs, const int ldx,
00108 ma86pkgtype_d_ *x, const int order[], void **keep,
00109 const struct ma86_control_d *control, struct ma86_info_d *info,
00110 const ma86realtype_d_ scale[]);
00111
00112 void ma86_finalise_d(void **keep, const struct ma86_control_d *control);
00113
00114 #endif