normalize
Normalize a scientific number by dividing out powers of 10 from the
coefficient and incrementing the
base10Exponent each
time.
You should rarely have a need for this function since scientific
numbers are automatically normalized when pretty-printed and in
toDecimalDigits.
Normalize a
Metric functor to have unit
norm. This
function does not change the functor if its
norm is 0 or 1.
Obtains a vector in the same direction with 2-norm=1
Reduce an expression to its normal form, performing beta reduction
normalize does not type-check the expression. You may want to
type-check expressions before normalizing them since normalization can
convert an ill-typed expression into a well-typed expression.
normalize can also fail with
error if you normalize an
ill-typed expression
It's also helpful to put a polynomial in canonical form.
normalize strips leading coefficients that are zero.
scale a quaternion into a unit quaternion
Normalize a string according to the specified normalization mode.
Normalize a string using the given normalization mode.
Normalize an
IPv4Range. The first result of this is that the
IPv4 inside the
IPv4Range is changed so that the
insignificant bits are zeroed out. For example:
>>> IPv4.printRange $ IPv4.normalize $ IPv4.IPv4Range (IPv4.fromOctets 192 168 1 19) 24
192.168.1.0/24
>>> IPv4.printRange $ IPv4.normalize $ IPv4.IPv4Range (IPv4.fromOctets 192 168 1 163) 28
192.168.1.160/28
The second effect of this is that the mask length is lowered to be 32
or smaller. Working with
IPv4Ranges that have not been
normalized does not cause any issues for this library, although other
applications may reject such ranges (especially those with a mask
length above 32).
Note that
normalize is idempotent, that is:
IPv4.normalize r == (IPv4.normalize . IPv4.normalize) r
Normalize an
IPv6Range. The first result of this is that the
IPv6 inside the
IPv6Range is changed so that the
insignificant bits are zeroed out. For example:
>>> addr1 = IPv6.ipv6 0x0192 0x0168 0x0001 0x0019 0x0000 0x0000 0x0000 0x0000
>>> addr2 = IPv6.ipv6 0x0192 0x0168 0x0001 0x0163 0x0000 0x0000 0x0000 0x0000
>>> IPv6.printRange $ IPv6.normalize $ IPv6.IPv6Range addr1 24
192:100::/24
>>> IPv6.printRange $ IPv6.normalize $ IPv6.IPv6Range addr2 28
192:160::/28
The second effect of this is that the mask length is lowered to be 128
or smaller. Working with
IPv6Ranges that have not been
normalized does not cause any issues for this library, although other
applications may reject such ranges (especially those with a mask
length above 128).
Note that 'normalize is idempotent, that is:
IPv6.normalize r == (IPv6.normalize . IPv6.normalize) r
sort sorts a list of coinciding events, that is all events but
the first one have time difference 0.
normalize sorts all
coinciding events in a list thus yielding a canonical representation
of a time ordered list.
sort sorts a list of coinciding events, that is all events but
the first one have time difference 0.
normalize sorts all
coinciding events in a list thus yielding a canonical representation
of a time ordered list.
Sort coincident elements.
Perform both
normalizeCase and
normalizeRoot on the
given
Domain. When comparing DNS names taken from user input,
this is often necessary to avoid unexpected results.
Examples:
>>> let domain1 = BS.pack "ExAmPlE.COM"
>>> let domain2 = BS.pack "example.com."
>>> domain1 == domain2
False
>>> normalize domain1 == normalize domain2
True
The
normalize function should be idempotent:
>>> normalize (normalize domain1) == normalize domain1
True
Ensure that we don't crash on the empty
Domain:
>>> import qualified Data.ByteString.Char8 as BS
>>> normalize BS.empty
"."
The constructor function to build a
NormalizedText value. You
probably shouldn't be using this module directly, but if for some
reason you are using it, then you should be using this function to
create
NormalizedText values.
Return a vector with the same origin and orientation (angle), but such
that the norm is one (the unit for multiplication by a scalar).
Return a vector with the same origin and orientation (angle), but such
that the norm is one (the unit for multiplication by a scalar).
Perform Unicode normalization on a UTF8 encoded ByteString
according to the specified normalization mode.
Perform Unicode normalization on Text according to the
specified normalization mode.