Show / Hide Table of Contents

Class EnsureDenominatorIsTypeDouble

For any BinaryOperation with Divide, apply Mangrove.MetricSetTransformers.Internal.Arithmetic.EnsureTypeDouble(Mangrove.MetricSetSyntaxTree.Expression) to the denominator. Mangrove makes the assumption that number division is non-integer, so for any a/b with a and b both integer, we need to explicitly cast b to type double.

For example, if a literal is of type double but the value is specified as "1", in the generated script it would simply be "1", and so for example if the script has a division 1/SUM(integer value), this division will be incorrectly treated as INTEGER division and NOT DOUBLE division, which would result in the value 0.

Inheritance
Object
ChangeDag<Expression, Table, IExpressionVisitor>
ChangeExpressions
EnsureDenominatorIsTypeDouble
Implements
IGenericExpressionVisitor<IEnumerable<Expression>>
IExpressionVisitor
IGenericVisitor<IEnumerable<Expression>>
Inherited Members
ChangeExpressions.CreatedExpressions
ChangeExpressions.Result
ChangeExpressions.Identifier(Expression)
ChangeExpressions.ChangeIdentifier(Expression)
ChangeExpressions.Change(Aggregand)
ChangeExpressions.Change(BinaryAggregation)
ChangeExpressions.Change(ColumnReference)
ChangeExpressions.Change(DataSourceColumn)
ChangeExpressions.Change(Extern)
ChangeExpressions.Change(Filter)
ChangeExpressions.Change(JoinKey)
ChangeExpressions.Change(Literal)
ChangeExpressions.Change(RuntimeVariable)
ChangeExpressions.Change(TernaryOperation)
ChangeExpressions.Change(UnaryAggregation)
ChangeExpressions.Change(UnaryOperation)
ChangeExpressions.Change(UnionExpression)
ChangeExpressions.Change(VectorOperation)
ChangeExpressions.Change(UnaryWindowFunction)
ChangeExpressions.Visit(Aggregand)
ChangeExpressions.Visit(BinaryAggregation)
ChangeExpressions.Visit(BinaryOperation)
ChangeExpressions.Visit(ColumnReference)
ChangeExpressions.Visit(DataSourceColumn)
ChangeExpressions.Visit(Extern)
ChangeExpressions.Visit(Filter)
ChangeExpressions.Visit(JoinKey)
ChangeExpressions.Visit(Literal)
ChangeExpressions.Visit(RuntimeVariable)
ChangeExpressions.Visit(TernaryOperation)
ChangeExpressions.Visit(UnaryAggregation)
ChangeExpressions.Visit(UnaryOperation)
ChangeExpressions.Visit(UnionExpression)
ChangeExpressions.Visit(VectorOperation)
ChangeExpressions.Visit(UnaryWindowFunction)
ChangeDag<Expression, Table, IExpressionVisitor>.Mapping
ChangeDag<Expression, Table, IExpressionVisitor>.Reset()
ChangeDag<Expression, Table, IExpressionVisitor>.Identifier(Expression)
ChangeDag<Expression, Table, IExpressionVisitor>.ChangeIdentifier(Expression)
ChangeDag<Expression, Table, IExpressionVisitor>.ReplaceParent(Expression, Expression, Expression)
ChangeDag<Expression, Table, IExpressionVisitor>.UberVisit<TSubnode>(TSubnode, Func<TSubnode, Expression>)
ChangeDag<Expression, Table, IExpressionVisitor>.UberVisit<TSubnode, TSubidentifier>(TSubnode, Func<TSubnode, Expression>)
Object.Equals(Object)
Object.Equals(Object, Object)
Object.GetHashCode()
Object.GetType()
Object.MemberwiseClone()
Object.ReferenceEquals(Object, Object)
Object.ToString()
Namespace: Mangrove.MetricSetTransformers.Normalization
Assembly: MetricSetTransformers.dll
Syntax
public class EnsureDenominatorIsTypeDouble : ChangeExpressions, IGenericExpressionVisitor<IEnumerable<Expression>>, IExpressionVisitor, IGenericVisitor<IEnumerable<Expression>>

Methods

View Source

Change(BinaryOperation)

Declaration
protected override Expression Change(BinaryOperation bo)
Parameters
Type Name Description
BinaryOperation bo
Returns
Type Description
Expression
Overrides
ChangeExpressions.Change(BinaryOperation)

Implements

IGenericExpressionVisitor<T>
IExpressionVisitor
IGenericVisitor<T>

Extension Methods

ObjectExtensions.EventId(Object)
  • View Source
Back to top Generated by DocFX