public final class LongPrimitive extends AbstractLongPrimitive<LongPrimitive>
long precision primitive implementationNaN, ONEI, ZERO_DOUBLE_LONG_BITS, ZERO_FLOAT_INT_BITS, ZEROI| Constructor and Description |
|---|
LongPrimitive() |
LongPrimitive(BigDecimal aValue) |
LongPrimitive(BigInteger aValue) |
LongPrimitive(boolean aValue) |
LongPrimitive(byte aValue) |
LongPrimitive(char aValue) |
LongPrimitive(double aValue) |
LongPrimitive(float aValue) |
LongPrimitive(int aValue) |
LongPrimitive(long aValue) |
LongPrimitive(SealedScalar<?> aValue) |
LongPrimitive(short aValue) |
LongPrimitive(String aValue) |
| Modifier and Type | Method and Description |
|---|---|
LongPrimitive |
and(long aValue)
Set this value to the bit and of the integral boolean
vector equivalent of this value and the specified integral boolean vector
|
LongPrimitive |
copy()
Produce a replica of this object
|
LongPrimitive |
copyUsing(long aValue)
Using this object as a factory, produce a new scalar of an
appropriately matching type but initialized with the value specified
|
LongPrimitive |
decrement()
Replace the current value with the current value minus unity (one)
|
LongPrimitive |
difference(long aValue)
Set the value of this scalar to the mathematical difference
between its current value and the specified value
|
ConcurrencyStrategy |
getConcurrency() |
LongPrimitive |
increment()
Replace the current value with the current value plus unity (one)
|
long |
longPostDecrement()
Decrement the scalar value of this object then return the original value
prior to decrementing
|
long |
longPostIncrement()
Increment the scalar value of this object then return the original value
prior to incrementing
|
long |
longValue() |
LongPrimitive |
mod(long aValue)
Set the value of this scalar to its current value modulo of the
specified value
|
LongPrimitive |
not()
Replace the current integral binary vector with its one's
complement.
|
LongPrimitive |
or(long aValue)
Set this value to the bit or of the integral boolean vector
equivalent of this value and the specified integral boolean vector
|
LongPrimitive |
product(long aValue)
Set the value of this scalar to the mathematical product of its
current value and the specified value
|
LongPrimitive |
quotient(long aValue)
Set the value of this scalar to the mathematical quotient of its
current value and the specified value
|
LongPrimitive |
setScalar(long aValue)
Set this property to the specified
long value and answer this
object (facilitates chaining) |
LongPrimitive |
shiftLeft(int count)
Attempt to shift the elements of this tuple to the "left" the specified
number of ordinal positions.
|
LongPrimitive |
shiftRight(int count)
Attempt to shift the elements of this tuple to the "right" the specified
number of ordinal positions.
|
LongPrimitive |
shiftRightExtendZero(int count)
Attempt to shift the elements of this tuple to the "right" the specified
number of ordinal positions without sign extension.
|
LongPrimitive |
sum(long aValue)
Set the value of this scalar to the mathematical sum of its
current value and the specified value
|
LongPrimitive |
xor(long aValue)
Set this value to the bit exclusive-or of the integral
boolean vector equivalent of this value and the specified integral
boolean vector
|
absoluteValue, and, and, and, and, and, booleanPostDecrement, booleanPostIncrement, booleanValue, bytePostDecrement, bytePostIncrement, byteValue, charPostDecrement, charPostIncrement, charValue, copyUsing, copyUsing, copyUsing, copyUsing, copyUsing, copyUsing, copyUsing, copyUsing, copyUsing, copyUsingPrimitive, copyUsingReal, copyUsingScalar, cube, difference, difference, difference, difference, difference, doublePostDecrement, doublePostIncrement, doubleValue, floatPostDecrement, floatPostIncrement, floatValue, inducePostDecrement, inducePostIncrement, induceRealMaximum, induceRealMinimum, induceRealValue, induceScalarMaximum, induceScalarMinimum, induceScalarValue, intPostDecrement, intPostIncrement, intValue, inverse, isFinite, isInfinity, isInvalid, isMaximum, isMinimum, isModulo, isNegative, isNegativeFinite, isNegativeInfinity, isPositive, isPositiveFinite, isPositiveInfinity, isReal, isUnity, isZero, negate, or, or, or, or, or, product, product, product, product, product, quotient, quotient, quotient, quotient, quotient, round, setMaximum, setMinimum, setNumber, setPrimitive, setReal, setReal, setReal, setScalar, setScalar, setScalar, setScalar, setScalar, setScalar, setScalar, setScalar, setUnity, setZero, shortPostDecrement, shortPostIncrement, shortValue, square, sum, sum, sum, sum, sum, swapPrimitives, toNumber, toString, toUnlimitedDecimal, toUnlimitedInteger, unlimitedDecimalPostDecrement, unlimitedDecimalPostIncrement, unlimitedIntegerPostDecrement, unlimitedIntegerPostIncrement, xor, xor, xor, xor, xorappend, append, append, append, append, append, append, append, append, append, append, append, append, append, appendCodePoint, charAt, clear, clearContents, clearText, codePointAt, codePointBefore, codePointCount, compareTo, compareToPrimitive, copyUsingText, delete, deleteCharAt, equals, getStructureStrategy, indexOfText, indexOfText, inducePostDecrement, inducePostDecrement, inducePostIncrement, inducePostIncrement, inducePrimitiveValue, induceTextValue, insert, insert, insert, insert, insert, insert, insert, insert, insert, insert, insert, insert, isEmpty, isEqualToPrimitive, isEqualToText, isGreaterOrEqualToPrimitive, isGreaterOrEqualToText, isGreaterThanPrimitive, isGreaterThanText, isLessOrEqualToPrimitive, isLessOrEqualToText, isLessThanPrimitive, isLessThanText, isNotEqualToPrimitive, isNotEqualToText, isText, length, lowerCase, prepend, prepend, prepend, prepend, prepend, prepend, prepend, prepend, prepend, prepend, prepend, prepend, prepend, replace, replace, replaceAll, replaceCharacter, replaceFirst, reverse, setBoolean, setCharacter, setCharAt, setLength, setText, subSequence, substring, substring, textPostDecrement, textPostIncrement, titleCase, toPrimitive, toPrimitive, trim, upperCaseandOfPrimitive, angleWithPrimitive, compareToText, differenceOfPrimitive, hypotenuseWithPrimitive, inducePrimitiveMaximum, inducePrimitiveMinimum, induceTextSize, modOfPrimitive, orOfPrimitive, powerOfPrimitive, productOfPrimitive, quotientOfPrimitive, sumOfPrimitive, toPrimitive, xorOfPrimitiveand, andOfNumber, andOfReal, angleWithReal, compareToNumber, compareToReal, compareToReal, compareToReal, difference, difference, differenceOfNumber, differenceOfReal, gcd, gcdOfNumber, gcdOfReal, hypotenuseWithReal, induceRealSize, isEqual, isEqual, isEqualToNumber, isEqualToReal, isGreater, isGreater, isGreaterOrEqual, isGreaterOrEqual, isGreaterOrEqualToNumber, isGreaterOrEqualToReal, isGreaterThanNumber, isGreaterThanReal, isLess, isLess, isLessOrEqual, isLessOrEqual, isLessOrEqualToNumber, isLessOrEqualToReal, isLessThanNumber, isLessThanReal, isNotEqual, isNotEqual, isNotEqualToNumber, isNotEqualToReal, mod, mod, modOfNumber, modOfReal, or, orOfNumber, orOfReal, powerOfReal, product, product, productOfNumber, productOfReal, quotient, quotient, quotientOfNumber, quotientOfReal, sum, sum, sumOfNumber, sumOfReal, toReal, unlimitedIntegerModularInverse, xor, xorOfNumber, xorOfRealandOfScalar, angleWith, angleWithNumber, angleWithScalar, arcCosine, arcSine, arcTangent, assertDomain, assertPrecision, base10Log, boundsCheck, byteMaskAt, byteNotMaskAt, byteValue, ceiling, charMaskAt, charNotMaskAt, charValue, clearByteBitAt, clearCharBitAt, clearDoubleBitAt, clearFloatBitAt, clearIntBitAt, clearLongBitAt, clearShortBitAt, clearUnlimitedDecimalBitAt, clearUnlimitedIntegerBitAt, compareTo, compareTo, compareTo, compareTo, compareTo, compareTo, compareTo, compareTo, compareTo, compareTo, compareTo, compareToScalar, compareToScalar, compareToScalar, compareToScalar, compareToScalar, compareToScalar, compareToScalar, compareToScalar, compareToScalar, compareToZero, cosine, cubeRoot, degrees, difference, difference, differenceOfScalar, divideByZero, down, exponential, exponentialLessOne, floor, gcd, gcd, gcd, gcd, gcd, gcdOfScalar, getBooleanBitAt, getByteBitAt, getCharBitAt, getDomain, getDoubleBitAt, getFloatBitAt, getIntBitAt, getLongBitAt, getPrecision, getShortBitAt, getUnlimitedDecimalBitAt, getUnlimitedIntegerBitAt, halfDown, halfEven, halfUp, hashCode, hashCode, hashCode, hashCode, hashCode, hashCode, hashCode, hashCode, hyperbolicCosine, hyperbolicSine, hyperbolicTangent, hypotenuseWith, hypotenuseWithNumber, hypotenuseWithScalar, indexOutOfBoundsAt, induceScalarSize, intGCD, intMaskAt, intModularInverse, intModularQuotient, intNotMaskAt, intValue, invalidate, isAlphabetic, isBmpCodePoint, isConfigurable, isCountable, isDigit, isElastic, isEqual, isEqual, isEqual, isEqual, isEqual, isEqual, isEqual, isEqual, isEqualToScalar, isExpandable, isFalse, isGreater, isGreater, isGreater, isGreater, isGreater, isGreater, isGreater, isGreater, isGreaterOrEqual, isGreaterOrEqual, isGreaterOrEqual, isGreaterOrEqual, isGreaterOrEqual, isGreaterOrEqual, isGreaterOrEqual, isGreaterOrEqual, isGreaterOrEqualToScalar, isGreaterThanScalar, isHighSurrogate, isIdentifierIgnorable, isIdeographic, isImaginary, isISOControl, isJavaIdentifierPart, isJavaIdentifierStart, isLess, isLess, isLess, isLess, isLess, isLess, isLess, isLess, isLessOrEqual, isLessOrEqual, isLessOrEqual, isLessOrEqual, isLessOrEqual, isLessOrEqual, isLessOrEqual, isLessOrEqual, isLessOrEqualToScalar, isLessThanScalar, isLetter, isLetterOrDigit, isLowerCase, isLowSurrogate, isMirrored, isMutable, isNotEqual, isNotEqual, isNotEqual, isNotEqual, isNotEqual, isNotEqual, isNotEqual, isNotEqual, isNotEqualToScalar, isOrdered, isReducible, isSupplementaryCodePoint, isSurrogate, isTitleCase, isTrue, isUnicode, isUnicodeIdentifierPart, isUnicodeIdentifierStart, isUnique, isUpperCase, isValid, isValidCodePoint, isWhitespace, longGCD, longMaskAt, longModularInverse, longModularQuotient, longNotMaskAt, longSize, longValue, milliseconds, mod, mod, mod, mod, mod, mod, mod, modOfScalar, nanoseconds, naturalLog, naturalLogPlusOne, orOfScalar, power, power, powerOfNumber, powerOfScalar, product, product, productOfScalar, promoteTo, quotient, quotient, quotientOfScalar, radians, random, setByteBitAt, setCharBitAt, setDoubleBitAt, setE, setEnumeration, setFalse, setFloatBitAt, setIntBitAt, setLongBitAt, setNegativeInfinity, setPi, setPositiveInfinity, setShortBitAt, setTrue, setUnlimitedDecimalBitAt, setUnlimitedIntegerBitAt, shortMaskAt, shortNotMaskAt, shortValue, signum, sine, size, squareRoot, sum, sum, sumOfScalar, tangent, toBoolean, toBooleanArray, toBooleanArray, toBooleanArray, toBooleanArray, toBooleanArray, toBooleanArray, toBooleanArray, toBooleanArray, toBooleanArray, toBooleanArray, toBooleanArray, toByteArray, toCharacter, toCodePoint, toEnumeration, toScalar, toUnlimitedInteger, unlimitedIntegerMaskAt, unlimitedIntegerNotMaskAt, up, xorOfScalarclone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitcompareToReal, compareToReal, compareToReal, isEqual, isEqual, isEqualToReal, isGreater, isGreater, isGreaterOrEqual, isGreaterOrEqual, isGreaterOrEqualToReal, isGreaterThanReal, isLess, isLess, isLessOrEqual, isLessOrEqual, isLessOrEqualToReal, isLessThanReal, isNotEqual, isNotEqual, isNotEqualToRealcompareToNumber, compareToScalar, compareToScalar, compareToScalar, compareToScalar, compareToScalar, compareToScalar, compareToScalar, compareToScalar, compareToScalar, compareToZero, isEqual, isEqual, isEqual, isEqual, isEqual, isEqual, isEqual, isEqual, isEqualToNumber, isEqualToScalar, isFalse, isGreater, isGreater, isGreater, isGreater, isGreater, isGreater, isGreater, isGreater, isGreaterOrEqual, isGreaterOrEqual, isGreaterOrEqual, isGreaterOrEqual, isGreaterOrEqual, isGreaterOrEqual, isGreaterOrEqual, isGreaterOrEqual, isGreaterOrEqualToNumber, isGreaterOrEqualToScalar, isGreaterThanNumber, isGreaterThanScalar, isLess, isLess, isLess, isLess, isLess, isLess, isLess, isLess, isLessOrEqual, isLessOrEqual, isLessOrEqual, isLessOrEqual, isLessOrEqual, isLessOrEqual, isLessOrEqual, isLessOrEqual, isLessOrEqualToNumber, isLessOrEqualToScalar, isLessThanNumber, isLessThanScalar, isNotEqual, isNotEqual, isNotEqual, isNotEqual, isNotEqual, isNotEqual, isNotEqual, isNotEqual, isNotEqualToNumber, isNotEqualToScalar, isTrue, toBoolean, toCharacter, toCodePoint, toEnumerationhashCodeisImaginary, isValid, signumisAlphabetic, isBmpCodePoint, isDigit, isHighSurrogate, isIdentifierIgnorable, isIdeographic, isISOControl, isJavaIdentifierPart, isJavaIdentifierStart, isLetter, isLetterOrDigit, isLowerCase, isLowSurrogate, isMirrored, isSupplementaryCodePoint, isSurrogate, isTitleCase, isUnicode, isUnicodeIdentifierPart, isUnicodeIdentifierStart, isUpperCase, isValidCodePoint, isWhitespacegetPrecisioninduceRealSizeinduceScalarSizegetDomain, longSize, sizeisConfigurable, isCountable, isElastic, isExpandable, isOrdered, isReducible, isUniquetoRealtoScalarand, andOfReal, angleWithReal, difference, difference, differenceOfReal, gcd, gcdOfReal, hypotenuseWithReal, mod, mod, modOfReal, or, orOfReal, powerOfReal, product, product, productOfReal, quotient, quotient, quotientOfReal, sum, sum, sumOfReal, xor, xorOfRealandOfNumber, andOfScalar, angleWith, angleWithNumber, angleWithScalar, arcCosine, arcSine, arcTangent, base10Log, ceiling, cosine, cubeRoot, degrees, difference, difference, differenceOfNumber, differenceOfScalar, down, exponential, exponentialLessOne, floor, gcd, gcd, gcd, gcd, gcd, gcdOfNumber, gcdOfScalar, halfDown, halfEven, halfUp, hyperbolicCosine, hyperbolicSine, hyperbolicTangent, hypotenuseWith, hypotenuseWithNumber, hypotenuseWithScalar, invalidate, milliseconds, mod, mod, mod, mod, mod, mod, mod, modOfNumber, modOfScalar, nanoseconds, naturalLog, naturalLogPlusOne, orOfNumber, orOfScalar, power, power, powerOfNumber, powerOfScalar, product, product, productOfNumber, productOfScalar, quotient, quotient, quotientOfNumber, quotientOfScalar, radians, random, setE, setEnumeration, setNegativeInfinity, setPi, setPositiveInfinity, sine, squareRoot, sum, sum, sumOfNumber, sumOfScalar, tangent, up, xorOfNumber, xorOfScalarsetFalse, setTrueassertPrecision, promoteToassertDomainpublic LongPrimitive()
public LongPrimitive(BigDecimal aValue)
public LongPrimitive(BigInteger aValue)
public LongPrimitive(boolean aValue)
public LongPrimitive(byte aValue)
public LongPrimitive(char aValue)
public LongPrimitive(double aValue)
public LongPrimitive(float aValue)
public LongPrimitive(int aValue)
public LongPrimitive(long aValue)
public LongPrimitive(SealedScalar<?> aValue)
public LongPrimitive(short aValue)
public LongPrimitive(String aValue)
public final LongPrimitive and(long aValue) throws UnsupportedOperationException, IllegalArgumentException, ArithmeticException
MutableScalarand in interface MutableScalar<LongPrimitive>and in class AbstractScalar<LongPrimitive>aValue - an integral boolean vectorUnsupportedOperationException - if this object's value cannot be changedIllegalArgumentException - if the new value was incommensurate with this object's
specificationArithmeticException - the new numeric value was incompatible with with algebraic
interpretation of this objectpublic final LongPrimitive copy()
Replicatorpublic final LongPrimitive copyUsing(long aValue)
ScalarReplicatoraValue - a new valuepublic LongPrimitive decrement() throws UnsupportedOperationException, IllegalArgumentException, ArithmeticException
MutableScalarUnsupportedOperationException - if this object's value cannot be changedIllegalArgumentException - if the new value was incommensurate with this object's
specificationArithmeticException - the new numeric value was incompatible with with algebraic
interpretation of this objectpublic final LongPrimitive difference(long aValue) throws UnsupportedOperationException, IllegalArgumentException, ArithmeticException
MutableScalardifference in interface MutableScalar<LongPrimitive>difference in class AbstractScalar<LongPrimitive>aValue - a subtrahendUnsupportedOperationException - if this object's value cannot be changedIllegalArgumentException - if the new value was incommensurate with this object's
specificationArithmeticException - the new numeric value was incompatible with with algebraic
interpretation of this objectpublic final ConcurrencyStrategy getConcurrency()
public LongPrimitive increment() throws UnsupportedOperationException, ArithmeticException, IllegalArgumentException
MutableScalarUnsupportedOperationException - if this object's value cannot be changedArithmeticException - the new numeric value was incompatible with with algebraic
interpretation of this objectIllegalArgumentException - if the new value was incommensurate with this object's
specificationpublic final long longPostDecrement() throws UnsupportedOperationException, ArithmeticException, IllegalArgumentException
MutableLongValueUnsupportedOperationException - if this object's value cannot be changedArithmeticException - the new numeric value was incompatible with with algebraic
interpretation of this objectIllegalArgumentException - if the new value was incommensurate with this object's
specificationpublic final long longPostIncrement() throws UnsupportedOperationException, ArithmeticException, IllegalArgumentException
MutableLongValueUnsupportedOperationException - if this object's value cannot be changedArithmeticException - the new numeric value was incompatible with with algebraic
interpretation of this objectIllegalArgumentException - if the new value was incommensurate with this object's
specificationpublic final long longValue()
longValue in interface SealedLongValuelongValue in class Numberlongpublic final LongPrimitive mod(long aValue) throws UnsupportedOperationException, IllegalArgumentException, ArithmeticException
MutableScalarmod in interface MutableScalar<LongPrimitive>mod in class AbstractScalar<LongPrimitive>aValue - a modulusUnsupportedOperationException - if this object's value cannot be changedIllegalArgumentException - if the new value was incommensurate with this object's
specificationArithmeticException - the new numeric value was incompatible with with algebraic
interpretation of this objectpublic final LongPrimitive not() throws UnsupportedOperationException, IllegalArgumentException, ArithmeticException
MutableScalardouble, will be first
converted to unlimited integers before their bits are
reversed.UnsupportedOperationException - if this object's value cannot be changedIllegalArgumentException - if the new value was incommensurate with this object's
specificationArithmeticException - the new numeric value was incompatible with with algebraic
interpretation of this objectpublic final LongPrimitive or(long aValue) throws UnsupportedOperationException, IllegalArgumentException, ArithmeticException
MutableScalaror in interface MutableScalar<LongPrimitive>or in class AbstractScalar<LongPrimitive>aValue - an integral boolean vectorUnsupportedOperationException - if this object's value cannot be changedIllegalArgumentException - if the new value was incommensurate with this object's
specificationArithmeticException - the new numeric value was incompatible with with algebraic
interpretation of this objectpublic final LongPrimitive product(long aValue) throws UnsupportedOperationException, IllegalArgumentException, ArithmeticException
MutableScalarproduct in interface MutableScalar<LongPrimitive>product in class AbstractScalar<LongPrimitive>aValue - a multiplicandUnsupportedOperationException - if this object's value cannot be changedIllegalArgumentException - if the new value was incommensurate with this object's
specificationArithmeticException - the new numeric value was incompatible with with algebraic
interpretation of this objectpublic final LongPrimitive quotient(long aValue) throws UnsupportedOperationException, IllegalArgumentException, ArithmeticException
MutableScalarquotient in interface MutableScalar<LongPrimitive>quotient in class AbstractScalar<LongPrimitive>aValue - a divisorUnsupportedOperationException - if this object's value cannot be changedIllegalArgumentException - if the new value was incommensurate with this object's
specificationArithmeticException - the new numeric value was incompatible with with algebraic
interpretation of this objectpublic final LongPrimitive setScalar(long aValue) throws UnsupportedOperationException, IllegalArgumentException, ArithmeticException
MutableLongValuelong value and answer this
object (facilitates chaining)aValue - a long valueUnsupportedOperationException - if this object's value cannot be changedIllegalArgumentException - if the specified value was incommensurate with this object's
specificationArithmeticException - the numeric value provided was incompatible with with algebraic
interpretation of this objectpublic final LongPrimitive shiftLeft(int count) throws UnsupportedOperationException, IllegalArgumentException, ArithmeticException
MutableScalar<<). In other
sequences, the specified number of default values will be prepended to
the beginning of the sequence, increasing the ordinal position of all
existing elements by the specified count.count - the number of default values to be prepended to this sequenceUnsupportedOperationException - if this object's value cannot be changed or if this structure is
not an algebraic tupleIllegalArgumentException - if the specified value was incommensurate with this structure's
specificationArithmeticException - the numeric value provided was incompatible with with algebraic
interpretation of this structurepublic final LongPrimitive shiftRight(int count) throws UnsupportedOperationException, IllegalArgumentException, ArithmeticException
MutableScalar>> operator). In other sequences, the specified number of values
will be removed from the beginning of the sequence, decreasing the
ordinal position of all remaining elements by the specified count.count - the number of values to be removed from the beginning of this
sequenceUnsupportedOperationException - if this object's value cannot be changed or if this structure is
not an algebraic tupleIllegalArgumentException - if the specified value was incommensurate with this structure's
specificationArithmeticException - the numeric value provided was incompatible with with algebraic
interpretation of this structurepublic final LongPrimitive shiftRightExtendZero(int count) throws UnsupportedOperationException, IllegalArgumentException, ArithmeticException
MutableScalar>>> operator). In other
sequences, the specified number of values will be removed from the
beginning of the sequence, decreasing the ordinal position of all
remaining elements by the specified count.shiftRightExtendZero in interface MutableScalar<LongPrimitive>shiftRightExtendZero in class AbstractScalar<LongPrimitive>count - the number of values to be removed from the beginning of this
sequenceUnsupportedOperationException - if this object's value cannot be changed or if this structure is
not an algebraic tupleIllegalArgumentException - if the specified value was incommensurate with this structure's
specificationArithmeticException - the numeric value provided was incompatible with with algebraic
interpretation of this structurepublic final LongPrimitive sum(long aValue) throws UnsupportedOperationException, IllegalArgumentException, ArithmeticException
MutableScalarsum in interface MutableScalar<LongPrimitive>sum in class AbstractScalar<LongPrimitive>aValue - an addendUnsupportedOperationException - if this object's value cannot be changedIllegalArgumentException - if the new value was incommensurate with this object's
specificationArithmeticException - the new numeric value was incompatible with with algebraic
interpretation of this objectpublic final LongPrimitive xor(long aValue) throws UnsupportedOperationException, IllegalArgumentException, ArithmeticException
MutableScalarxor in interface MutableScalar<LongPrimitive>xor in class AbstractScalar<LongPrimitive>aValue - an integral boolean vectorUnsupportedOperationException - if this object's value cannot be changedIllegalArgumentException - if the new value was incommensurate with this object's
specificationArithmeticException - the new numeric value was incompatible with with algebraic
interpretation of this objectCopyright © 2006-2012 Ware-Squared Software Development. All Rights Reserved.