Go to the documentation of this file.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 };
00065
00066
00067
00068
00069 struct ma86_info_d {
00070 ma86realtype_d_ detlog;
00071 int detsign;
00072 int flag;
00073 int matrix_rank;
00074 int maxdepth;
00075 int num_delay;
00076 long num_factor;
00077 long num_flops;
00078 int num_neg;
00079 int num_nodes;
00080 int num_nothresh;
00081 int num_perturbed;
00082 int num_two;
00083 int pool_size;
00084 int stat;
00085 ma86realtype_d_ usmall;
00086 };
00087
00088
00089 void ma86_default_control_d(struct ma86_control_d *control);
00090
00091 void ma86_analyse_d(const int n, const int ptr[], const int row[], int order[],
00092 void **keep, const struct ma86_control_d *control,
00093 struct ma86_info_d *info);
00094
00095 void ma86_factor_d(const int n, const int ptr[], const int row[],
00096 const ma86pkgtype_d_ val[], const int order[], void **keep,
00097 const struct ma86_control_d *control, struct ma86_info_d *info,
00098 const ma86realtype_d_ scale[]);
00099
00100 void ma86_factor_solve_d(const int n, const int ptr[], const int row[],
00101 const ma86pkgtype_d_ val[], const int order[], void **keep,
00102 const struct ma86_control_d *control, struct ma86_info_d *info,
00103 const int nrhs, const int ldx, ma86pkgtype_d_ x[],
00104 const ma86realtype_d_ scale[]);
00105
00106 void ma86_solve_d(const int job, const int nrhs, const int ldx,
00107 ma86pkgtype_d_ *x, const int order[], void **keep,
00108 const struct ma86_control_d *control, struct ma86_info_d *info,
00109 const ma86realtype_d_ scale[]);
00110
00111 void ma86_finalise_d(void **keep, const struct ma86_control_d *control);
00112
00113 #endif