// Code generated by "stringer -type AlgKind -trimprefix A alg.go"; DO NOT EDIT.

package types

import "strconv"

func _() {
	// An "invalid array index" compiler error signifies that the constant values have changed.
	// Re-run the stringer command to generate them again.
	var x [1]struct{}
	_ = x[AUNK-0]
	_ = x[ANOEQ-1]
	_ = x[ANOALG-2]
	_ = x[AMEM-3]
	_ = x[AMEM0-4]
	_ = x[AMEM8-5]
	_ = x[AMEM16-6]
	_ = x[AMEM32-7]
	_ = x[AMEM64-8]
	_ = x[AMEM128-9]
	_ = x[ASTRING-10]
	_ = x[AINTER-11]
	_ = x[ANILINTER-12]
	_ = x[AFLOAT32-13]
	_ = x[AFLOAT64-14]
	_ = x[ACPLX64-15]
	_ = x[ACPLX128-16]
	_ = x[ASPECIAL-17]
}

const _AlgKind_name = "UNKNOEQNOALGMEMMEM0MEM8MEM16MEM32MEM64MEM128STRINGINTERNILINTERFLOAT32FLOAT64CPLX64CPLX128SPECIAL"

var _AlgKind_index = [...]uint8{0, 3, 7, 12, 15, 19, 23, 28, 33, 38, 44, 50, 55, 63, 70, 77, 83, 90, 97}

func (i AlgKind) String() string {
	if i < 0 || i >= AlgKind(len(_AlgKind_index)-1) {
		return "AlgKind(" + strconv.FormatInt(int64(i), 10) + ")"
	}
	return _AlgKind_name[_AlgKind_index[i]:_AlgKind_index[i+1]]
}
