Diff

Differences From Artifact [bab2f5c2b7]:

To Artifact [36b31aa589]:


53
54
55
56
57
58
59

60
61
62






63
64
65
66
67
68
	return
}

// Returns an integer from a fibonacci code as specified in the package doc.
func (f Numbers) Decode(value uint64) (result uint64) {
	i := 1
	for (value & 3) != 3 {

		if (value & 1) == 1 {
			result += f.Nth(i)
		}






		value >>= 1
		i++
	}
	result += f.Nth(i) - 1
	return
}







>


|
>
>
>
>
>
>






53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
	return
}

// Returns an integer from a fibonacci code as specified in the package doc.
func (f Numbers) Decode(value uint64) (result uint64) {
	i := 1
	for (value & 3) != 3 {
		// Add the fibonacci number for the current bit if it is raised
		if (value & 1) == 1 {
			result += f.Nth(i)

			// We know that the next bit cannot be raised by Zeckendorf's theorem
			value >>= 2
			i += 2
			continue
		}

		value >>= 1
		i++
	}
	result += f.Nth(i) - 1
	return
}