/*Translated by FOR_C, v3.4.2 (-), on 07/09/115 at 08:30:08 */
/*FOR_C Options SET: ftn=u io=c no=p op=aimnv s=dbov str=l x=f - prototypes */
#include <math.h>
#include "fcrt.h"
#include "lsame.h"
#include <stdlib.h>
LOGICAL32 /*FUNCTION*/ lsame(
byte ca,
byte cb)
{
	LOGICAL32 lsame_v;
	long int inta, intb, zcode;
 
 
	/*  -- LAPACK auxiliary routine (version 3.1) --
	 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
	 *     November 2006
	 *
	 *     .. Scalar Arguments .. */
	/*     ..
	 *
	 *  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.
	 *
	 * =====================================================================
	 *
	 *     .. Intrinsic Functions .. */
	/*     ..
	 *     .. Local Scalars .. */
	/*     ..
	 *
	 *     Test if the characters are equal
	 * */
	lsame_v = ca == cb;
	if (lsame_v)
		return( lsame_v );
 
	/*     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 = ( ca );
	intb = ( 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;
	}
	lsame_v = inta == intb;
 
	/*     RETURN
	 *
	 *     End of LSAME
	 * */
	return( lsame_v );
} /* end of function */