Doxygen Source Code Documentation
Main Page Alphabetical List Data Structures File List Data Fields Globals Search
eis_rsgba.c
Go to the documentation of this file.00001
00002
00003
00004
00005
00006 #include "f2c.h"
00007
00008 int rsgba_(integer *nm, integer *n, doublereal *a,
00009 doublereal *b, doublereal *w, integer *matz, doublereal *z__,
00010 doublereal *fv1, doublereal *fv2, integer *ierr)
00011 {
00012
00013 integer a_dim1, a_offset, b_dim1, b_offset, z_dim1, z_offset;
00014
00015
00016 extern int tred1_(integer *, integer *, doublereal *,
00017 doublereal *, doublereal *, doublereal *), tred2_(integer *,
00018 integer *, doublereal *, doublereal *, doublereal *, doublereal *)
00019 , reduc2_(integer *, integer *, doublereal *, doublereal *,
00020 doublereal *, integer *), rebakb_(integer *, integer *,
00021 doublereal *, doublereal *, integer *, doublereal *), tqlrat_(
00022 integer *, doublereal *, doublereal *, integer *), tql2_(integer *
00023 , integer *, doublereal *, doublereal *, doublereal *, integer *);
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071 --fv2;
00072 --fv1;
00073 z_dim1 = *nm;
00074 z_offset = z_dim1 + 1;
00075 z__ -= z_offset;
00076 --w;
00077 b_dim1 = *nm;
00078 b_offset = b_dim1 + 1;
00079 b -= b_offset;
00080 a_dim1 = *nm;
00081 a_offset = a_dim1 + 1;
00082 a -= a_offset;
00083
00084
00085 if (*n <= *nm) {
00086 goto L10;
00087 }
00088 *ierr = *n * 10;
00089 goto L50;
00090
00091 L10:
00092 reduc2_(nm, n, &a[a_offset], &b[b_offset], &fv2[1], ierr);
00093 if (*ierr != 0) {
00094 goto L50;
00095 }
00096 if (*matz != 0) {
00097 goto L20;
00098 }
00099
00100 tred1_(nm, n, &a[a_offset], &w[1], &fv1[1], &fv2[1]);
00101 tqlrat_(n, &w[1], &fv2[1], ierr);
00102 goto L50;
00103
00104 L20:
00105 tred2_(nm, n, &a[a_offset], &w[1], &fv1[1], &z__[z_offset]);
00106 tql2_(nm, n, &w[1], &fv1[1], &z__[z_offset], ierr);
00107 if (*ierr != 0) {
00108 goto L50;
00109 }
00110 rebakb_(nm, n, &b[b_offset], &fv2[1], n, &z__[z_offset]);
00111 L50:
00112 return 0;
00113 }
00114