Dynamic Symbolic Math Engine Selection via Intermediary Controller

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing symbolic math engines require rewriting code and handle different syntax and data formats, making it cumbersome to switch between them during execution in a technical computing environment, and there is no efficient method to handle errors dynamically.

Innovation Solution

A system and method that allows dynamic switching between symbolic math engines using a single common interface, with an engine controller converting user commands into compatible syntax and formats, and handling errors by propagating standard errors and selecting alternative engines.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a single symbolic math engine is used, then code compatibility is maintained, but engine versatility and adaptability are limited

Engineering Contradiction:
Improveengine switching capabilityVSAvoidsystem architecture
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent introduces an engine controller as an intermediary component that sits between the user interface and multiple symbolic math engines. This controller translates user commands into engine-specific syntax and manages engine selection, allowing the system to support multiple engines without requiring users to directly handle their differences. The intermediary absorbs the complexity of engine compatibility, presenting a unified interface to users while enabling versatile engine switching.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If multiple symbolic math engines are supported, then engine versatility is improved, but code rewriting and syntax adaptation become necessary

Engineering Contradiction:
Improveengine selection flexibilityVSAvoidcode portability
Core Design Contradiction:
Adaptability or versatilityVSEase of operation

Solution Approach 1:

The engine controller serves as a mediator that translates between a unified command interface and engine-specific syntaxes. Users write code in a standardized format, and the controller automatically adapts it to the selected engine's requirements. This eliminates the need for users to manually rewrite code when switching engines, as the translation happens automatically through the intermediary layer.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system implements a universal command interface that can work with multiple different symbolic math engines. The engine controller provides multi-functional capabilities by supporting various engines (such as Maple, Mathematica, and custom engines) through a single standardized interface, allowing the same user code to operate across different engines without modification.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Productivity

If symbolic math engines are switched dynamically, then operational flexibility is improved, but environment restart requirements are eliminated

Engineering Contradiction:
Improveengine switching efficiencyVSAvoidengine management system
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system enables dynamic engine switching during execution rather than requiring static engine selection at startup. The engine controller monitors execution state and can switch between engines on-the-fly based on computational needs, error conditions, or user preferences. This dynamic capability allows the system to adapt engine selection during runtime without restarting the computational environment, significantly improving productivity.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The engine controller implements feedback mechanisms that monitor engine performance, error conditions, and computational state. When errors occur or performance degradation is detected, the controller can automatically switch to an alternative engine. This feedback-driven approach enables automatic engine selection and switching based on real-time system state, improving both productivity and robustness.

Inventive Principle:
Principle #23Feedback

4Reliability

If error handling is implemented across multiple engines, then system reliability is improved, but error propagation complexity increases

Engineering Contradiction:
Improveerror handling capabilityVSAvoiderror management system
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The engine controller acts as an intermediary that standardizes error handling across different symbolic math engines. It captures errors from engine-specific formats, translates them into a unified error representation, and applies consistent error handling policies. This intermediary layer absorbs the complexity of dealing with diverse engine error formats, presenting a standardized error management interface to users while maintaining high reliability through consistent error handling.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS8832668B1System and method for dynamic symbolic math engine selection
Publication Date: 2014.09.09 MATHWORKS INC
  • US8832668B1 patent drawing
  • US8832668B1 patent drawing
  • US8832668B1 patent drawing

AI summary

In an embodiment, a computer-readable medium may include computer-executable instructions for dynamic symbolic math engine selection. The instructions, when executed by a processor, may cause the processor to: dynamically select a first symbolic math engine from two or more symbolic math engines; convert a first symbolic command from a standard format into a first format compatible with the first symbolic math engine; pass the first converted command to the first symbolic math engine for executing; receive an error from the first symbolic math engine from executing the first converted command; convert the first symbolic command from the standard format into a second format compatible with a second symbolic math engine based on the error received from first symbolic math engine, wherein the second symbolic math engine is selected from the two or more symbolic math engines; and pass the second converted command to the second symbolic math engine for executing.