github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library@v0.2.0/FloatCompare/FloatCompare.go (about)

     1  // Package FloatCompare
     2  // Dafny module FloatCompare compiled into Go
     3  
     4  package FloatCompare
     5  
     6  import (
     7  	os "os"
     8  
     9  	m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts"
    10  	m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals"
    11  	m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear"
    12  	m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod"
    13  	m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO"
    14  	m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions"
    15  	m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals"
    16  	m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt"
    17  	m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings"
    18  	m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm"
    19  	m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_"
    20  	m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals"
    21  	m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear"
    22  	m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul"
    23  	m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals"
    24  	m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear"
    25  	m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power"
    26  	m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations"
    27  	m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq"
    28  	m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort"
    29  	m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting"
    30  	m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary"
    31  	m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop"
    32  	m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence"
    33  	m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String"
    34  	m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt"
    35  	m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams"
    36  	m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings"
    37  	m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_"
    38  	m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm"
    39  	m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm"
    40  	m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers"
    41  	m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_"
    42  	_dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny"
    43  )
    44  
    45  var _ = os.Args
    46  var _ _dafny.Dummy__
    47  var _ m__System.Dummy__
    48  var _ m_Wrappers.Dummy__
    49  var _ m_Relations.Dummy__
    50  var _ m_Seq_MergeSort.Dummy__
    51  var _ m__Math.Dummy__
    52  var _ m_Seq.Dummy__
    53  var _ m_BoundedInts.Dummy__
    54  var _ m__Unicode.Dummy__
    55  var _ m_Functions.Dummy__
    56  var _ m_Utf8EncodingForm.Dummy__
    57  var _ m_Utf16EncodingForm.Dummy__
    58  var _ m_UnicodeStrings.Dummy__
    59  var _ m_FileIO.Dummy__
    60  var _ m_GeneralInternals.Dummy__
    61  var _ m_MulInternalsNonlinear.Dummy__
    62  var _ m_MulInternals.Dummy__
    63  var _ m_Mul.Dummy__
    64  var _ m_ModInternalsNonlinear.Dummy__
    65  var _ m_DivInternalsNonlinear.Dummy__
    66  var _ m_ModInternals.Dummy__
    67  var _ m_DivInternals.Dummy__
    68  var _ m_DivMod.Dummy__
    69  var _ m_Power.Dummy__
    70  var _ m_Logarithm.Dummy__
    71  var _ m_StandardLibraryInterop.Dummy__
    72  var _ m_StandardLibrary_UInt.Dummy__
    73  var _ m_StandardLibrary_Sequence.Dummy__
    74  var _ m_StandardLibrary_String.Dummy__
    75  var _ m_StandardLibrary.Dummy__
    76  var _ m_Streams.Dummy__
    77  var _ m_Sorting.Dummy__
    78  var _ m_HexStrings.Dummy__
    79  var _ m_GetOpt.Dummy__
    80  
    81  type Dummy__ struct{}
    82  
    83  // Definition of class Default__
    84  type Default__ struct {
    85  	dummy byte
    86  }
    87  
    88  func New_Default___() *Default__ {
    89  	_this := Default__{}
    90  
    91  	return &_this
    92  }
    93  
    94  type CompanionStruct_Default___ struct {
    95  }
    96  
    97  var Companion_Default___ = CompanionStruct_Default___{}
    98  
    99  func (_this *Default__) Equals(other *Default__) bool {
   100  	return _this == other
   101  }
   102  
   103  func (_this *Default__) EqualsGeneric(x interface{}) bool {
   104  	other, ok := x.(*Default__)
   105  	return ok && _this.Equals(other)
   106  }
   107  
   108  func (*Default__) String() string {
   109  	return "FloatCompare.Default__"
   110  }
   111  func (_this *Default__) ParentTraits_() []*_dafny.TraitID {
   112  	return [](*_dafny.TraitID){}
   113  }
   114  
   115  var _ _dafny.TraitOffspring = &Default__{}
   116  
   117  func (_static *CompanionStruct_Default___) StrToIntInner(s _dafny.Sequence, acc _dafny.Int) _dafny.Int {
   118  	goto TAIL_CALL_START
   119  TAIL_CALL_START:
   120  	if (_dafny.IntOfUint32((s).Cardinality())).Sign() == 0 {
   121  		return acc
   122  	} else if ((_dafny.Char('0')) <= ((s).Select(0).(_dafny.Char))) && (((s).Select(0).(_dafny.Char)) <= (_dafny.Char('9'))) {
   123  		var _in0 _dafny.Sequence = (s).Drop(1)
   124  		_ = _in0
   125  		var _in1 _dafny.Int = (((acc).Times(_dafny.IntOfInt64(10))).Plus(_dafny.IntOfInt32(rune((s).Select(0).(_dafny.Char))))).Minus(_dafny.IntOfInt32(rune(_dafny.Char('0'))))
   126  		_ = _in1
   127  		s = _in0
   128  		acc = _in1
   129  		goto TAIL_CALL_START
   130  	} else {
   131  		var _in2 _dafny.Sequence = (s).Drop(1)
   132  		_ = _in2
   133  		var _in3 _dafny.Int = acc
   134  		_ = _in3
   135  		s = _in2
   136  		acc = _in3
   137  		goto TAIL_CALL_START
   138  	}
   139  }
   140  func (_static *CompanionStruct_Default___) SkipLeadingSpace(val _dafny.Sequence) _dafny.Sequence {
   141  	goto TAIL_CALL_START
   142  TAIL_CALL_START:
   143  	if ((_dafny.IntOfUint32((val).Cardinality())).Sign() == 1) && (((val).Select(0).(_dafny.Char)) <= (_dafny.Char(' '))) {
   144  		var _in0 _dafny.Sequence = (val).Drop(1)
   145  		_ = _in0
   146  		val = _in0
   147  		goto TAIL_CALL_START
   148  	} else {
   149  		return val
   150  	}
   151  }
   152  func (_static *CompanionStruct_Default___) StrToInt(s _dafny.Sequence, acc _dafny.Int) _dafny.Int {
   153  	var _0_tmp _dafny.Sequence = Companion_Default___.SkipLeadingSpace(s)
   154  	_ = _0_tmp
   155  	if (_dafny.IntOfUint32((_0_tmp).Cardinality())).Sign() == 0 {
   156  		return _dafny.Zero
   157  	} else if ((_0_tmp).Select(0).(_dafny.Char)) == (_dafny.Char('-')) {
   158  		return (_dafny.Zero).Minus(Companion_Default___.StrToIntInner(s, _dafny.Zero))
   159  	} else {
   160  		return Companion_Default___.StrToIntInner(s, _dafny.Zero)
   161  	}
   162  }
   163  func (_static *CompanionStruct_Default___) SplitE(x _dafny.Sequence) m_Wrappers.Option {
   164  	var _0_parts m_Wrappers.Option = m_StandardLibrary.Companion_Default___.SplitOnce_q(x, _dafny.Char('e'))
   165  	_ = _0_parts
   166  	if (_0_parts).Is_Some() {
   167  		return _0_parts
   168  	} else {
   169  		return m_StandardLibrary.Companion_Default___.SplitOnce_q(x, _dafny.Char('E'))
   170  	}
   171  }
   172  func (_static *CompanionStruct_Default___) SplitExp(x _dafny.Sequence) _dafny.Tuple {
   173  	var _0_parts m_Wrappers.Option = Companion_Default___.SplitE(x)
   174  	_ = _0_parts
   175  	if (_0_parts).Is_Some() {
   176  		return _dafny.TupleOf((*((_0_parts).Dtor_value().(_dafny.Tuple)).IndexInt(0)).(_dafny.Sequence), Companion_Default___.StrToInt((*((_0_parts).Dtor_value().(_dafny.Tuple)).IndexInt(1)).(_dafny.Sequence), _dafny.Zero))
   177  	} else {
   178  		return _dafny.TupleOf(x, _dafny.Zero)
   179  	}
   180  }
   181  func (_static *CompanionStruct_Default___) SkipLeadingZeros(val _dafny.Sequence) _dafny.Sequence {
   182  	goto TAIL_CALL_START
   183  TAIL_CALL_START:
   184  	if ((_dafny.IntOfUint32((val).Cardinality())).Sign() == 1) && (((val).Select(0).(_dafny.Char)) == (_dafny.Char('0'))) {
   185  		var _in0 _dafny.Sequence = (val).Drop(1)
   186  		_ = _in0
   187  		val = _in0
   188  		goto TAIL_CALL_START
   189  	} else {
   190  		return val
   191  	}
   192  }
   193  func (_static *CompanionStruct_Default___) SkipTrailingZeros(val _dafny.Sequence) _dafny.Sequence {
   194  	goto TAIL_CALL_START
   195  TAIL_CALL_START:
   196  	if ((_dafny.IntOfUint32((val).Cardinality())).Sign() == 1) && (((val).Select(((_dafny.IntOfUint32((val).Cardinality())).Minus(_dafny.One)).Uint32()).(_dafny.Char)) == (_dafny.Char('0'))) {
   197  		var _in0 _dafny.Sequence = (val).Take(((_dafny.IntOfUint32((val).Cardinality())).Minus(_dafny.One)).Uint32())
   198  		_ = _in0
   199  		val = _in0
   200  		goto TAIL_CALL_START
   201  	} else {
   202  		return val
   203  	}
   204  }
   205  func (_static *CompanionStruct_Default___) SplitDot(x _dafny.Sequence) _dafny.Tuple {
   206  	var _0_parts m_Wrappers.Option = m_StandardLibrary.Companion_Default___.SplitOnce_q(x, _dafny.Char('.'))
   207  	_ = _0_parts
   208  	if (_0_parts).Is_Some() {
   209  		return _dafny.TupleOf(Companion_Default___.SkipLeadingZeros((*((_0_parts).Dtor_value().(_dafny.Tuple)).IndexInt(0)).(_dafny.Sequence)), Companion_Default___.SkipTrailingZeros((*((_0_parts).Dtor_value().(_dafny.Tuple)).IndexInt(1)).(_dafny.Sequence)))
   210  	} else {
   211  		return _dafny.TupleOf(Companion_Default___.SkipLeadingZeros(x), _dafny.SeqOfString(""))
   212  	}
   213  }
   214  func (_static *CompanionStruct_Default___) StrCmp(x _dafny.Sequence, y _dafny.Sequence) int8 {
   215  	goto TAIL_CALL_START
   216  TAIL_CALL_START:
   217  	if ((_dafny.IntOfUint32((x).Cardinality())).Sign() == 0) && ((_dafny.IntOfUint32((y).Cardinality())).Sign() == 0) {
   218  		return int8(0)
   219  	} else if (_dafny.IntOfUint32((x).Cardinality())).Sign() == 0 {
   220  		return int8(-1)
   221  	} else if (_dafny.IntOfUint32((y).Cardinality())).Sign() == 0 {
   222  		return int8(1)
   223  	} else if ((x).Select(0).(_dafny.Char)) < ((y).Select(0).(_dafny.Char)) {
   224  		return int8(-1)
   225  	} else if ((x).Select(0).(_dafny.Char)) > ((y).Select(0).(_dafny.Char)) {
   226  		return int8(1)
   227  	} else {
   228  		var _in0 _dafny.Sequence = (x).Drop(1)
   229  		_ = _in0
   230  		var _in1 _dafny.Sequence = (y).Drop(1)
   231  		_ = _in1
   232  		x = _in0
   233  		y = _in1
   234  		goto TAIL_CALL_START
   235  	}
   236  }
   237  func (_static *CompanionStruct_Default___) AppendZeros(x _dafny.Sequence, newLength _dafny.Int) _dafny.Sequence {
   238  	return _dafny.Companion_Sequence_.Concatenate(x, _dafny.SeqCreate(((newLength).Minus(_dafny.IntOfUint32((x).Cardinality()))).Uint32(), func(coer26 func(_dafny.Int) _dafny.Char) func(_dafny.Int) interface{} {
   239  		return func(arg30 _dafny.Int) interface{} {
   240  			return coer26(arg30)
   241  		}
   242  	}(func(_0_i _dafny.Int) _dafny.Char {
   243  		return _dafny.Char('0')
   244  	})).SetString())
   245  }
   246  func (_static *CompanionStruct_Default___) CompareFloatInner(x _dafny.Sequence, y _dafny.Sequence) int8 {
   247  	var _0_xParts _dafny.Tuple = Companion_Default___.SplitExp(x)
   248  	_ = _0_xParts
   249  	var _1_yParts _dafny.Tuple = Companion_Default___.SplitExp(y)
   250  	_ = _1_yParts
   251  	var _2_xNum _dafny.Tuple = Companion_Default___.SplitDot((*(_0_xParts).IndexInt(0)).(_dafny.Sequence))
   252  	_ = _2_xNum
   253  	var _3_yNum _dafny.Tuple = Companion_Default___.SplitDot((*(_1_yParts).IndexInt(0)).(_dafny.Sequence))
   254  	_ = _3_yNum
   255  	var _4_xDigits _dafny.Sequence = Companion_Default___.SkipLeadingZeros(_dafny.Companion_Sequence_.Concatenate((*(_2_xNum).IndexInt(0)).(_dafny.Sequence), (*(_2_xNum).IndexInt(1)).(_dafny.Sequence)))
   256  	_ = _4_xDigits
   257  	var _5_yDigits _dafny.Sequence = Companion_Default___.SkipLeadingZeros(_dafny.Companion_Sequence_.Concatenate((*(_3_yNum).IndexInt(0)).(_dafny.Sequence), (*(_3_yNum).IndexInt(1)).(_dafny.Sequence)))
   258  	_ = _5_yDigits
   259  	var _6_xExp _dafny.Int = ((*(_0_xParts).IndexInt(1)).(_dafny.Int)).Minus(_dafny.IntOfUint32(((*(_2_xNum).IndexInt(1)).(_dafny.Sequence)).Cardinality()))
   260  	_ = _6_xExp
   261  	var _7_yExp _dafny.Int = ((*(_1_yParts).IndexInt(1)).(_dafny.Int)).Minus(_dafny.IntOfUint32(((*(_3_yNum).IndexInt(1)).(_dafny.Sequence)).Cardinality()))
   262  	_ = _7_yExp
   263  	var _8_logX _dafny.Int = (_6_xExp).Plus(_dafny.IntOfUint32((_4_xDigits).Cardinality()))
   264  	_ = _8_logX
   265  	var _9_logY _dafny.Int = (_7_yExp).Plus(_dafny.IntOfUint32((_5_yDigits).Cardinality()))
   266  	_ = _9_logY
   267  	if (_8_logX).Cmp(_9_logY) > 0 {
   268  		return int8(1)
   269  	} else if (_9_logY).Cmp(_8_logX) > 0 {
   270  		return int8(-1)
   271  	} else if (_dafny.IntOfUint32((_4_xDigits).Cardinality())).Cmp(_dafny.IntOfUint32((_5_yDigits).Cardinality())) < 0 {
   272  		return Companion_Default___.StrCmp(Companion_Default___.AppendZeros(_4_xDigits, _dafny.IntOfUint32((_5_yDigits).Cardinality())), _5_yDigits)
   273  	} else if (_dafny.IntOfUint32((_5_yDigits).Cardinality())).Cmp(_dafny.IntOfUint32((_4_xDigits).Cardinality())) < 0 {
   274  		return Companion_Default___.StrCmp(_4_xDigits, Companion_Default___.AppendZeros(_5_yDigits, _dafny.IntOfUint32((_4_xDigits).Cardinality())))
   275  	} else {
   276  		return Companion_Default___.StrCmp(_4_xDigits, _5_yDigits)
   277  	}
   278  }
   279  func (_static *CompanionStruct_Default___) IsNegative(x _dafny.Sequence) bool {
   280  	return ((_dafny.IntOfUint32((x).Cardinality())).Sign() == 1) && (((x).Select(0).(_dafny.Char)) == (_dafny.Char('-')))
   281  }
   282  func (_static *CompanionStruct_Default___) SkipLeadingPlus(x _dafny.Sequence) _dafny.Sequence {
   283  	if ((_dafny.IntOfUint32((x).Cardinality())).Sign() == 1) && (((x).Select(0).(_dafny.Char)) == (_dafny.Char('+'))) {
   284  		return (x).Drop(1)
   285  	} else {
   286  		return x
   287  	}
   288  }
   289  func (_static *CompanionStruct_Default___) IsZero(x _dafny.Sequence) bool {
   290  	goto TAIL_CALL_START
   291  TAIL_CALL_START:
   292  	if (_dafny.IntOfUint32((x).Cardinality())).Sign() == 0 {
   293  		return true
   294  	} else if (((x).Select(0).(_dafny.Char)) == (_dafny.Char('0'))) || (((x).Select(0).(_dafny.Char)) == (_dafny.Char('.'))) {
   295  		var _in0 _dafny.Sequence = (x).Drop(1)
   296  		_ = _in0
   297  		x = _in0
   298  		goto TAIL_CALL_START
   299  	} else if ((_dafny.Char('1')) <= ((x).Select(0).(_dafny.Char))) && (((x).Select(0).(_dafny.Char)) <= (_dafny.Char('9'))) {
   300  		return false
   301  	} else {
   302  		return true
   303  	}
   304  }
   305  func (_static *CompanionStruct_Default___) RecognizeZero(x _dafny.Sequence) _dafny.Sequence {
   306  	if Companion_Default___.IsNegative(x) {
   307  		if Companion_Default___.IsZero((x).Drop(1)) {
   308  			return _dafny.SeqOfString("0")
   309  		} else {
   310  			return x
   311  		}
   312  	} else if Companion_Default___.IsZero(x) {
   313  		return _dafny.SeqOfString("0")
   314  	} else {
   315  		return x
   316  	}
   317  }
   318  func (_static *CompanionStruct_Default___) CleanNumber(x _dafny.Sequence) _dafny.Sequence {
   319  	return Companion_Default___.RecognizeZero(Companion_Default___.SkipLeadingPlus(Companion_Default___.SkipLeadingSpace(x)))
   320  }
   321  func (_static *CompanionStruct_Default___) CompareFloat(x _dafny.Sequence, y _dafny.Sequence) int8 {
   322  	var _0_x _dafny.Sequence = Companion_Default___.CleanNumber(x)
   323  	_ = _0_x
   324  	var _1_y _dafny.Sequence = Companion_Default___.CleanNumber(y)
   325  	_ = _1_y
   326  	if (Companion_Default___.IsNegative(_0_x)) && (Companion_Default___.IsNegative(_1_y)) {
   327  		return Companion_Default___.CompareFloatInner((_1_y).Drop(1), (_0_x).Drop(1))
   328  	} else if Companion_Default___.IsNegative(_0_x) {
   329  		return int8(-1)
   330  	} else if Companion_Default___.IsNegative(_1_y) {
   331  		return int8(1)
   332  	} else {
   333  		return Companion_Default___.CompareFloatInner(_0_x, _1_y)
   334  	}
   335  }
   336  func (_static *CompanionStruct_Default___) Less() int8 {
   337  	return int8(-1)
   338  }
   339  func (_static *CompanionStruct_Default___) Equal() int8 {
   340  	return int8(0)
   341  }
   342  func (_static *CompanionStruct_Default___) Greater() int8 {
   343  	return int8(1)
   344  }
   345  
   346  // End of class Default__
   347  
   348  // Definition of class CompareType
   349  type CompareType struct {
   350  }
   351  
   352  func New_CompareType_() *CompareType {
   353  	_this := CompareType{}
   354  
   355  	return &_this
   356  }
   357  
   358  type CompanionStruct_CompareType_ struct {
   359  }
   360  
   361  var Companion_CompareType_ = CompanionStruct_CompareType_{}
   362  
   363  func (*CompareType) String() string {
   364  	return "FloatCompare.CompareType"
   365  }
   366  func (_this *CompareType) ParentTraits_() []*_dafny.TraitID {
   367  	return [](*_dafny.TraitID){}
   368  }
   369  
   370  var _ _dafny.TraitOffspring = &CompareType{}
   371  
   372  func (_this *CompanionStruct_CompareType_) IntegerRange(lo _dafny.Int, hi _dafny.Int) _dafny.Iterator {
   373  	iter := _dafny.IntegerRange(lo, hi)
   374  	return func() (interface{}, bool) {
   375  		next, ok := iter()
   376  		if !ok {
   377  			return int8(0), false
   378  		}
   379  		return next.(_dafny.Int).Int8(), true
   380  	}
   381  }
   382  
   383  // End of class CompareType
   384  
   385  func Type_CompareType_() _dafny.TypeDescriptor {
   386  	return type_CompareType_{}
   387  }
   388  
   389  type type_CompareType_ struct {
   390  }
   391  
   392  func (_this type_CompareType_) Default() interface{} {
   393  	return int8(0)
   394  }
   395  
   396  func (_this type_CompareType_) String() string {
   397  	return "FloatCompare.CompareType"
   398  }
   399  func (_this *CompanionStruct_CompareType_) Is_(__source int8) bool {
   400  	var _0_x _dafny.Int = _dafny.IntOfInt8(__source)
   401  	_ = _0_x
   402  	return ((_dafny.IntOfInt64(-1)).Cmp(_0_x) <= 0) && ((_0_x).Cmp(_dafny.One) <= 0)
   403  }