Type-Independent Array Creation Routine via Polymorphic Routing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing array creation routines in computing environments require multiple versions of code to be maintained for different data types and routine types, leading to inefficiencies in management and execution.

Innovation Solution

A method to generate and execute type-independent code that can utilize different data type and routine type information, allowing a single version of code to be used across various data types and routine types without the need for multiple versions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If multiple versions of code are maintained for different data types and routine types, then the code can support various data types and routine types, but the device complexity and ease of operation deteriorate due to management inefficiencies

Engineering Contradiction:
Improvesupport for various data types and routine typesVSAvoidcode management complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent implements a universal array creation routine that can handle multiple data types (numeric, cell, structure) and routine types through a single unified code structure. The routine uses polymorphic functions and interfaces that automatically adapt to different data types, eliminating the need for separate specialized routines for each type while maintaining full functionality across all supported types.

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

Solution Approach 2:

The patent introduces an intermediary layer in the form of a configuration object or metadata structure that mediates between the single array creation routine and the various data types. This intermediary contains type information and routing logic that directs the routine to the appropriate implementation based on the input data type, allowing one routine to serve multiple purposes without complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If multiple versions of code are maintained for different data types and routine types, then the code can support various data types and routine types, but the ease of operation worsens due to execution inefficiencies

Engineering Contradiction:
Improvesupport for various data types and routine typesVSAvoidexecution efficiency
Core Design Contradiction:
Adaptability or versatilityVSEase of operation

Solution Approach 1:

The patent implements a universal array creation routine that can handle multiple data types (numeric, cell, structure) and routine types through a single unified code structure. The routine uses polymorphic functions and interfaces that automatically adapt to different data types, eliminating the need for separate specialized routines for each type while maintaining full functionality across all supported types.

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

Solution Approach 2:

The patent performs preliminary action by determining the data type and routine type before executing the array creation routine. Type information is captured in advance through configuration objects or metadata, allowing the system to prepare the appropriate execution path and parameters beforehand. This preliminary type resolution eliminates runtime overhead and improves execution efficiency by avoiding dynamic dispatch overhead.

Inventive Principle:
Principle #10Preliminary action

3Adaptability or versatility

If multiple versions of code are maintained for different data types and routine types, then the code can support various data types and routine types, but the productivity deteriorates due to management and execution inefficiencies

Engineering Contradiction:
Improvesupport for various data types and routine typesVSAvoidmanagement and execution efficiency
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent implements a universal array creation routine that can handle multiple data types (numeric, cell, structure) and routine types through a single unified code structure. The routine uses polymorphic functions and interfaces that automatically adapt to different data types, eliminating the need for separate specialized routines for each type while maintaining full functionality across all supported types.

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

Solution Approach 2:

The patent merges multiple separate array creation routines into a single unified routine that handles all data types. By combining the functionality of multiple specialized routines into one polymorphic routine, the system reduces the total number of code paths to manage and execute, thereby improving productivity while maintaining support for various data types and routine types.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentEP2883137B1A mechanism for replacing an array creation routine within code
Publication Date: 2020.09.23 MATHWORKS INC
  • EP2883137B1 patent drawingFigure 1A
  • EP2883137B1 patent drawingFigure 1B
  • EP2883137B1 patent drawingFigure 1C

AI summary

A system obtains code that includes sequences of code; identifies, within a first sequence of code and based on obtaining the code, a first routine that, when executed, enables an array of values to be generated. The array of values is associated with a variable included within the first routine. The system determines whether the routine includes a particular term, and identifies, within the routine, a first identifier when the routine includes the particular term. The first identifier corresponds to a second sequence of code that identifies a first data structure that stores information that identifies one or more second routines. The system identifies, within the data structure, a second routine based on the particular term and a second identifier corresponding to the first routine; executes, using the variable, the second routine to generate a result; and outputs the result based on executing the second routine.