-// Licensed to the .NET Foundation under one or more agreements.
+// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
//
// The second problem is solved by making all addresses relative to the
// start of the first sequence and performing all operations in
- // unsigned integer arithmetic modulo 2³².
+ // unsigned integer arithmetic modulo 2^32.
//
// Example
// -------
// address space as follows:
//
// [----------------------------------------------) normal address space
- // 0 2³²
+ // 0 2^32
// [------------------) first sequence
// xRef xRef + xLength
// [--------------------------) . second sequence
// . . .
// . . .
// [----------------------------------------------) relative address space
- // 0 . . 2³²
+ // 0 . . 2^32
// [------------------) : first sequence
// x1 . x2 :
// -------------) [------------- second sequence
//
// yRef relative to xRef is (yRef - xRef). If (yRef - xRef) is
// negative, casting it to an unsigned 32-bit integer turns it into
- // (yRef - xRef + 2³²). So, in the example above, y1 moves to the right
+ // (yRef - xRef + 2^32). So, in the example above, y1 moves to the right
// of x2.
//
// y2 is simply y1 + yLength. Note that this can overflow, as in the
// The two sequences do *not* overlap if y is entirely in the space
// right of x in the relative address space. (It can't be left of it!)
//
- // (y1 >= x2) && (y2 <= 2³²)
+ // (y1 >= x2) && (y2 <= 2^32)
//
// Inversely, they do overlap if
//
- // (y1 < x2) || (y2 > 2³²)
+ // (y1 < x2) || (y2 > 2^32)
//
// After substituting x2 and y2 with their respective definition:
//
- // == (y1 < xLength) || (y1 + yLength > 2³²)
+ // == (y1 < xLength) || (y1 + yLength > 2^32)
//
// Since yLength can't be greater than the size of the address space,
// the overflow can be avoided as follows:
//
- // == (y1 < xLength) || (y1 > 2³² - yLength)
+ // == (y1 < xLength) || (y1 > 2^32 - yLength)
//
- // However, 2³² cannot be stored in an unsigned 32-bit integer, so one
+ // However, 2^32 cannot be stored in an unsigned 32-bit integer, so one
// more change is needed to keep doing everything with unsigned 32-bit
// integers:
//
// == (y1 < xLength) || (y1 > -yLength)
//
// Due to modulo arithmetic, this gives exactly same result *except* if
- // yLength is zero, since 2³² - 0 is 0 and not 2³². So the case
+ // yLength is zero, since 2^32 - 0 is 0 and not 2^32. So the case
// y.IsEmpty must be handled separately first.
//