Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'intern/opennl/superlu/lsame.c')
-rw-r--r--intern/opennl/superlu/lsame.c70
1 files changed, 70 insertions, 0 deletions
diff --git a/intern/opennl/superlu/lsame.c b/intern/opennl/superlu/lsame.c
new file mode 100644
index 00000000000..29f27d38fa9
--- /dev/null
+++ b/intern/opennl/superlu/lsame.c
@@ -0,0 +1,70 @@
+int lsame_(char *ca, char *cb)
+{
+/* -- LAPACK auxiliary routine (version 2.0) --
+ Univ. of Tennessee, Univ. of California Berkeley, NAG Ltd.,
+ Courant Institute, Argonne National Lab, and Rice University
+ September 30, 1994
+
+ Purpose
+ =======
+
+ LSAME returns .TRUE. if CA is the same letter as CB regardless of case.
+
+ Arguments
+ =========
+
+ CA (input) CHARACTER*1
+ CB (input) CHARACTER*1
+ CA and CB specify the single characters to be compared.
+
+ =====================================================================
+*/
+
+ /* System generated locals */
+ int ret_val;
+
+ /* Local variables */
+ int inta, intb, zcode;
+
+ ret_val = *(unsigned char *)ca == *(unsigned char *)cb;
+ if (ret_val) {
+ return ret_val;
+ }
+
+ /* Now test for equivalence if both characters are alphabetic. */
+
+ zcode = 'Z';
+
+ /* Use 'Z' rather than 'A' so that ASCII can be detected on Prime
+ machines, on which ICHAR returns a value with bit 8 set.
+ ICHAR('A') on Prime machines returns 193 which is the same as
+ ICHAR('A') on an EBCDIC machine. */
+
+ inta = *(unsigned char *)ca;
+ intb = *(unsigned char *)cb;
+
+ if (zcode == 90 || zcode == 122) {
+ /* ASCII is assumed - ZCODE is the ASCII code of either lower or
+ upper case 'Z'. */
+ if (inta >= 97 && inta <= 122) inta += -32;
+ if (intb >= 97 && intb <= 122) intb += -32;
+
+ } else if (zcode == 233 || zcode == 169) {
+ /* EBCDIC is assumed - ZCODE is the EBCDIC code of either lower or
+ upper case 'Z'. */
+ if ((inta >= 129 && inta <= 137) || (inta >= 145 && inta <= 153) || (inta
+ >= 162 && inta <= 169))
+ inta += 64;
+ if ((intb >= 129 && intb <= 137) || (intb >= 145 && intb <= 153) || (intb
+ >= 162 && intb <= 169))
+ intb += 64;
+ } else if (zcode == 218 || zcode == 250) {
+ /* ASCII is assumed, on Prime machines - ZCODE is the ASCII code
+ plus 128 of either lower or upper case 'Z'. */
+ if (inta >= 225 && inta <= 250) inta += -32;
+ if (intb >= 225 && intb <= 250) intb += -32;
+ }
+ ret_val = inta == intb;
+ return ret_val;
+
+} /* lsame_ */