equations

package
v0.0.0-...-7dad8b2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 1, 2019 License: MIT Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrInvalidExpression is returned when expression is invalid and cannot be evaluated
	ErrInvalidExpression = errors.New("trust: invalid expression")
)

Functions

func EvaluateFinalReferralTrustExpression

func EvaluateFinalReferralTrustExpression(context FinalReferralTrustExpressionContext, expression FinalReferralTrustExpression) (*opinion.Type, error)

EvaluateFinalReferralTrustExpression evaluates expression using expression context and returns evaluated value or error

Types

type DefaultFinalReferralTrustEquationContext

type DefaultFinalReferralTrustEquationContext struct {
	DirectReferralTrust trust.DirectReferralOpinion
	FinalReferralTrust  trust.FinalReferralOpinion
}

func (*DefaultFinalReferralTrustEquationContext) GetDirectReferralTrust

func (c *DefaultFinalReferralTrustEquationContext) GetDirectReferralTrust(link trust.Link) opinion.Type

func (*DefaultFinalReferralTrustEquationContext) GetDiscount

func (*DefaultFinalReferralTrustEquationContext) GetFinalReferralTrust

func (c *DefaultFinalReferralTrustEquationContext) GetFinalReferralTrust(link trust.Link) opinion.Type

func (*DefaultFinalReferralTrustEquationContext) SetFinalReferralTrust

func (c *DefaultFinalReferralTrustEquationContext) SetFinalReferralTrust(link trust.Link, value *opinion.Type)

type FinalFunctionalTrustContext

type FinalFunctionalTrustContext interface {
	GetFinalReferralTrust(link trust.Link) opinion.Type
	GetDiscount(opinion.Type) float64
}

FinalFunctionalTrustContext is a context to evaluate final functional trust

type FinalReferralTrustEquation

type FinalReferralTrustEquation struct {
	// R represents R[i, j] - i's (possibly indirect) opinion about the trustworthiness of j
	R trust.Link
	// FinalReferralTrustExpression of R[i, j]
	Expression FinalReferralTrustExpression
}

FinalReferralTrustEquation represents final referral trust equation: R[i, j] = FinalReferralTrustExpression

func (*FinalReferralTrustEquation) EvaluateFinalReferralTrust

func (e *FinalReferralTrustEquation) EvaluateFinalReferralTrust(context FinalReferralTrustEquationContext) (res *opinion.Type, err error)

EvaluateFinalReferralTrust evaluates new final referral value from equation expression and updates final referral trust with the new value.

type FinalReferralTrustEquationContext

type FinalReferralTrustEquationContext interface {
	FinalReferralTrustExpressionContext
	// SetFinalReferralTrust used to update evaluated expression value
	SetFinalReferralTrust(link trust.Link, value *opinion.Type)
}

FinalReferralTrustEquationContext to evaluate final referral trust equation

type FinalReferralTrustEquationIterator

type FinalReferralTrustEquationIterator func(NextFinalReferralTrustEquationHandler) error

FinalReferralTrustEquationIterator used as `foreach` to handle all final referral trust equations

type FinalReferralTrustEquations

type FinalReferralTrustEquations []*FinalReferralTrustEquation

FinalReferralTrustEquations is a set of final referral trust equation

func (FinalReferralTrustEquations) GetFinalReferralTrustEquationIterator

func (eqs FinalReferralTrustEquations) GetFinalReferralTrustEquationIterator() FinalReferralTrustEquationIterator

GetFinalReferralTrustEquationIterator implements IterableFinalReferralTrustEquations interface

type FinalReferralTrustExpression

type FinalReferralTrustExpression interface {
	IsFullUncertainty() bool
	IsDiscountingRule() bool
	IsDirectReferralTrust() bool
	IsConsensusList() bool
	Accept(v FinalReferralTrustExpressionVisitor) error
}

FinalReferralTrustExpression represents final referral trust expression

type FinalReferralTrustExpressionContext

type FinalReferralTrustExpressionContext interface {
	FinalFunctionalTrustContext
	GetDirectReferralTrust(link trust.Link) opinion.Type
}

FinalReferralTrustExpressionContext to evaluate expression of final referral trust equation

type FinalReferralTrustExpressionVisitor

type FinalReferralTrustExpressionVisitor interface {
	VisitFullUncertainty() error
	VisitDiscountingRule(r trust.Link, a trust.Link) error
	VisitDirectReferralTrust(a trust.Link) error
	VisitConsensusListStart(count int) error
	VisitConsensusList(index int, equation FinalReferralTrustExpression) error
	VisitConsensusListEnd() error
}

FinalReferralTrustExpressionVisitor is a visitor for FinalReferralTrustExpression

type IterableFinalReferralTrustEquations

type IterableFinalReferralTrustEquations interface {
	GetFinalReferralTrustEquationIterator() FinalReferralTrustEquationIterator
}

IterableFinalReferralTrustEquations allows to iterate over all final referral trust equations

func CreateFinalReferralTrustEquations

func CreateFinalReferralTrustEquations(links trust.IterableLinks) IterableFinalReferralTrustEquations

CreateFinalReferralTrustEquations creates equations for the final referral trust

type NextFinalReferralTrustEquationHandler

type NextFinalReferralTrustEquationHandler func(*FinalReferralTrustEquation) error

NextFinalReferralTrustEquationHandler handles next inal referral trust equation and returns error

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL