Module dev.civl.abc
Interface AbstractFunctionDefinitionNode
- All Superinterfaces:
ASTNode,BlockItemNode,DeclarationNode,FunctionDeclarationNode,OrdinaryDeclarationNode
An abstract function definition contains the information for an abstract function (i.e. a function in the mathematical sense, treated as uninterpreted in the code).
An abstract function has an identifier, return type, parameters, and an integer specifying the number of partial derivatives that may be taken.
-
Nested Class Summary
Nested classes/interfaces inherited from interface dev.civl.abc.ast.node.IF.ASTNode
ASTNode.NodeKindNested classes/interfaces inherited from interface dev.civl.abc.ast.node.IF.statement.BlockItemNode
BlockItemNode.BlockItemKindNested classes/interfaces inherited from interface dev.civl.abc.ast.node.IF.declaration.OrdinaryDeclarationNode
OrdinaryDeclarationNode.OrdinaryDeclarationKind -
Method Summary
Modifier and TypeMethodDescriptionintReturns the number of partial derivatives that exist and are continuous.copy()Returns a deep copy of this AST node.Returns the sequence of interval whose Cartesian product defines the domain on which the function is differentiable.Methods inherited from interface dev.civl.abc.ast.node.IF.ASTNode
addAllTransformAnnotations, addTransformAnnotation, child, childIndex, children, diff, equiv, getAttribute, getOwner, getScope, getSource, id, keepOnly, nextDFS, nodeKind, numChildren, parent, prettyPrint, prettyRepresentation, prettyRepresentation, print, remove, removeChild, removeTransformAnnotation, setAttribute, setChild, setId, setOwner, setScope, toString, transformAnnotationsMethods inherited from interface dev.civl.abc.ast.node.IF.statement.BlockItemNode
blockItemKindMethods inherited from interface dev.civl.abc.ast.node.IF.declaration.DeclarationNode
getIdentifier, getName, isDefinition, setEntity, setIdentifier, setIsDefinitionMethods inherited from interface dev.civl.abc.ast.node.IF.declaration.FunctionDeclarationNode
getContract, getEntity, getSystemLibrary, hasAtomicFunctionSpecifier, hasDeviceFunctionSpecifier, hasGlobalFunctionSpecifier, hasInlineFunctionSpecifier, hasNoreturnFunctionSpecifier, hasPureFunctionSpecifier, hasStatefFunctionSpecifier, hasSystemFunctionSpecifier, isLogicFunction, setAtomicFunctionSpecifier, setContract, setDeviceFunctionSpecifier, setGlobalFunctionSpecifier, setInlineFunctionSpecifier, setIsLogicFunction, setNoreturnFunctionSpecifier, setPureFunctionSpecifier, setStatefFunctionSpecifier, setSystemFunctionSpecifier, setSystemLibraryMethods inherited from interface dev.civl.abc.ast.node.IF.declaration.OrdinaryDeclarationNode
getTypeNode, hasExternStorage, hasStaticStorage, ordinaryDeclarationKind, setExternStorage, setStaticStorage, setTypeNode
-
Method Details
-
continuity
int continuity()Returns the number of partial derivatives that exist and are continuous.- Returns:
- The total number of partial derivatives (of any parameter) that may be taken.
-
getIntervals
SequenceNode<PairNode<ExpressionNode,ExpressionNode>> getIntervals()Returns the sequence of interval whose Cartesian product defines the domain on which the function is differentiable.- Returns:
- the interval sequence or
nullif absent
-
copy
Description copied from interface:ASTNodeReturns a deep copy of this AST node. The node and all of its descendants will be cloned. The cloning does not copy analysis or attribute information.- Specified by:
copyin interfaceASTNode- Specified by:
copyin interfaceBlockItemNode- Specified by:
copyin interfaceDeclarationNode- Specified by:
copyin interfaceFunctionDeclarationNode- Specified by:
copyin interfaceOrdinaryDeclarationNode- Returns:
- deep copy of this node
-
getAttribute
StringLiteralNode getAttribute()- Returns:
- the StringLiteralNode representing an optional attribute attached
to the abstract function, if there is an attribute.
null, otherwise.
-