Percent

com.phasmidsoftware.number.core.inner.Percent
case object Percent extends Scalar

The Percent object represents the percentage scalar. It serves as a factor for scaling values, interpreting them as percentages.

Attributes

Graph
Supertypes
trait Singleton
trait Product
trait Mirror
trait Serializable
trait Product
trait Equals
trait Scalar
trait Factor
class Object
trait Matchable
class Any
Show all
Self type
Percent.type

Members list

Type members

Inherited types

type MirroredElemLabels = EmptyTuple

The names of the product elements.

The names of the product elements.

Attributes

Inherited from:
Singleton
type MirroredElemTypes = EmptyTuple

Attributes

Inherited from:
Singleton
type MirroredMonoType = this.type

The mirrored *-type.

The mirrored *-type.

Attributes

Inherited from:
Singleton
type MirroredType = this.type

Attributes

Inherited from:
Singleton

Inherited and Abstract types

type MirroredLabel <: String

The name of the type.

The name of the type.

Attributes

Inherited from:
Mirror

Value members

Concrete methods

def doRaiseByPureNumber(x: Value, y: Value): Option[(Value, Factor, Option[Fuzziness[Double]])]

Raises the value x to the power of the value y.

Raises the value x to the power of the value y.

Value parameters

x

the base value to be raised

y

the exponent value (from a PureNumber)

Attributes

Returns

an optional result of type ProtoNumber, representing the computed value if the operation is valid, or None otherwise

def invert(x: Value): Option[(Value, Factor, Option[Fuzziness[Double]])]

Computes the multiplicative inverse of the given value if it exists.

Computes the multiplicative inverse of the given value if it exists.

Value parameters

x

the value to be inverted

Attributes

Returns

an optional ProtoNumber representing the inverse of x, or None if the inverse cannot be computed

def isExact: Boolean

Determines whether the current scalar can be exactly converted to a PureNumber.

Determines whether the current scalar can be exactly converted to a PureNumber.

Attributes

Returns

true if the scalar represents an exact value; false otherwise.

def modulate(v: Value): Value

Modulates the given value according to the context or rules defined by this factor.

Modulates the given value according to the context or rules defined by this factor.

Value parameters

v

the value to be modulated

Attributes

Returns

the modulated value

def multiply(x: Value, y: Value, f: Factor): Option[(Value, Factor, Option[Fuzziness[Double]])]

Multiplies two values together and computes an appropriate factor for the result.

Multiplies two values together and computes an appropriate factor for the result.

Value parameters

f

the factor associated with y

x

the first value

y

the multiplicand

Attributes

Returns

an optional tuple containing the resultant value and its factor

def render(v: String): String

Method to render a Value (which has already been converted to a String) in the context of this Factor.

Method to render a Value (which has already been converted to a String) in the context of this Factor.

Value parameters

v

a String representing the Value.

Attributes

Returns

a String.

override def toString: String

Returns a string representation of the object.

Returns a string representation of the object.

The default representation is platform dependent.

Attributes

Returns

a string representation of the object.

Definition Classes
Any

Inherited methods

def add(x: Value, y: Value, f: Factor, negative: Boolean): Option[ProtoNumber]

Adds two values together, applying the specified factor, to compute a resultant value and factor.

Adds two values together, applying the specified factor, to compute a resultant value and factor.

TODO handle the negative cases properly

Value parameters

f

the factor associated with the operation

negative

NOTE ignored.

x

the first value to be added

y

the second value (addend) to be added

Attributes

Returns

an optional tuple containing the resultant value, its factor, and optional fuzziness, or None if the operation cannot be performed under the given factor

Inherited from:
Scalar
def canAdd(f: Factor): Boolean

Determines whether the current factor can be augmented by the given factor. CONSIDER do we need this method now that we have add(x, y, this)?

Determines whether the current factor can be augmented by the given factor. CONSIDER do we need this method now that we have add(x, y, this)?

Value parameters

f

the factor to be checked for compatibility with addition.

Attributes

Returns

true if the factors can be added; false otherwise.

Inherited from:
Factor
def canMultiply(f: Factor): Boolean

Determines whether the current factor can be multiplied by the given factor.

Determines whether the current factor can be multiplied by the given factor.

Value parameters

f

the factor to be checked for compatibility with multiplication.

Attributes

Returns

true if the factors can be multiplied; false otherwise.

Inherited from:
Scalar
def canRaise(f: Factor, exponent: Field): Boolean

Determines whether this factor can be raised by the given factor f. CONSIDER do we need this method now that we have raise(x, y, this)?

Determines whether this factor can be raised by the given factor f. CONSIDER do we need this method now that we have raise(x, y, this)?

Value parameters

f

the factor to be checked for compatibility with raising to a power.

Attributes

Returns

true if the factors can be powered; false otherwise.

Inherited from:
Factor
def canShow(value: Value): Boolean

Determines whether given value with this Factor can be rendered exactly.

Determines whether given value with this Factor can be rendered exactly.

Attributes

Returns

true (value is ignored).

Inherited from:
Scalar
def clean(po: Option[ProtoNumber]): Option[ProtoNumber]

Cleans a given optional ProtoNumber by potentially simplifying its root quantities based on specific conditions and returning the modified result.

Cleans a given optional ProtoNumber by potentially simplifying its root quantities based on specific conditions and returning the modified result.

Value parameters

po

an optional ProtoNumber that may be simplified

Attributes

Returns

an optional ProtoNumber, simplified if applicable, or None if input is None

Inherited from:
Factor
def convert(v: Value, f: Factor): Option[Value]

Convert a value x from this factor to f if possible, using simple scaling. Result is defined only if f is a Scalar.

Convert a value x from this factor to f if possible, using simple scaling. Result is defined only if f is a Scalar.

Value parameters

f

the factor of the result.

v

the value to be converted.

Attributes

Returns

a Try of Value which, given factor f, represents the same quantity as x given this.

Inherited from:
Scalar
def fromProduct(p: Product): MirroredMonoType

Creates a new instance of type T with elements taken from product p.

Creates a new instance of type T with elements taken from product p.

Attributes

Inherited from:
Singleton
def isA(context: CoreContext): Boolean

Determines if the current factor satisfies certain conditions within the given context.

Determines if the current factor satisfies certain conditions within the given context.

Value parameters

context

the context in which the factor is evaluated.

Attributes

Returns

a Boolean indicating whether the factor satisfies the specified conditions in the given context.

Inherited from:
Scalar
def negate(x: Value): Option[ProtoNumber]

This doesn't seem to be invoked and looks wrong anyway.

This doesn't seem to be invoked and looks wrong anyway.

Value parameters

x

the value to negate

Attributes

Returns

an optional ProtoNumber representing the negated value, or None if the operation is not valid

Inherited from:
Scalar
def productElementNames: Iterator[String]

An iterator over the names of all the elements of this product.

An iterator over the names of all the elements of this product.

Attributes

Inherited from:
Product
def productIterator: Iterator[Any]

An iterator over all the elements of this product.

An iterator over all the elements of this product.

Attributes

Returns

in the default implementation, an Iterator[Any]

Inherited from:
Product
def raise(x: Value, y: Value, f: Factor): Option[ProtoNumber]

Raises x to the power of y and compute an appropriate factor for the result. NOTE: for now, we only allow raising to a power of a PureNumber. TODO: enable powers of Radian factor.

Raises x to the power of y and compute an appropriate factor for the result. NOTE: for now, we only allow raising to a power of a PureNumber. TODO: enable powers of Radian factor.

Value parameters

f

the factor associated with y

x

the first value

y

the power

Attributes

Returns

an optional tuple containing the resultant value and its factor

Inherited from:
Factor
def render(x: Value): String

Method to render a Value in the context of this Factor.

Method to render a Value in the context of this Factor.

Value parameters

x

the Value.

Attributes

Returns

a String.

Inherited from:
Factor

Concrete fields

val value: Double

A value which can be used to convert a value associated with this Factor to a different Factor. CONSIDER redefining this as a Number (which could be exact or fuzzy).

A value which can be used to convert a value associated with this Factor to a different Factor. CONSIDER redefining this as a Number (which could be exact or fuzzy).

Attributes

Inherited fields

lazy val isAdditive: Boolean

Determines if the current factor operates additively.

Determines if the current factor operates additively.

Attributes

Returns

true if the factor is additive; false otherwise.

Inherited from:
Scalar