javascript-fuzzylogic
Version:
A library that allows for manipulation of fuzzy sets in JavaScript
42 lines (41 loc) • 1.49 kB
TypeScript
export declare enum MembershipFunctionType {
Triangular = "Triangular",
Trapezoidal = "Trapezoidal",
Gaussian = "Gaussian",
Sigmoidal = "Sigmoidal"
}
export interface TriangularMembershipFunctionParams {
left: number;
center: number;
right: number;
}
export interface TrapezoidalMembershipFunctionParams {
bottomLeft: number;
topLeft: number;
topRight: number;
bottomRight: number;
}
export interface GaussianMembershipFunctionParams {
center: number;
standardDeviation: number;
}
export interface SigmoidalMembershipFunctionParams {
center: number;
slope: number;
}
export interface BaseMembershipFunctionParameters {
minValue: number;
maxValue: number;
step: number;
}
export declare type GenericMembershipFunctionParameters = TriangularMembershipFunctionParams | TrapezoidalMembershipFunctionParams | GaussianMembershipFunctionParams | SigmoidalMembershipFunctionParams;
export declare type MembershipFunctionParameters = {
[MembershipFunctionType.Triangular]: TriangularMembershipFunctionParams;
[MembershipFunctionType.Trapezoidal]: TrapezoidalMembershipFunctionParams;
[MembershipFunctionType.Gaussian]: GaussianMembershipFunctionParams;
[MembershipFunctionType.Sigmoidal]: SigmoidalMembershipFunctionParams;
};
export interface MembershipFunction<T extends keyof MembershipFunctionParameters> {
type: T;
parameters: MembershipFunctionParameters[T] & BaseMembershipFunctionParameters;
}