Patents Assigned to MATHWORKS, INC.
  • Patent number: 10181059
    Abstract: Methods, mediums and systems are provided to enable a user to build and edit a UML model for a system containing one or more physical component, which includes the across variable and/or the through variable of the components. A UML model may include classifiers, such as classes, interfaces, datatypes, signals, components, nodes, use cases and subsystems, that describes the structural and behavioral features of the system. A UML model may include at least one of the classifiers that is described using the across variables and/or the through variables of the system. For example, the interface of a component in a UML model may be described using the across variables and/or the through variables of the component.
    Type: Grant
    Filed: June 19, 2007
    Date of Patent: January 15, 2019
    Assignee: The MathWorks, Inc.
    Inventors: Nathan E. Brewton, Jean-Yves Brunel, Alan Moore, Pieter J. Mosterman
  • Patent number: 10168990
    Abstract: A device may receive a floating-point function. The floating-point function may be a function described in a programming language that uses floating-point representation. The device may determine that fixed-point program code, associated with the floating-point function, is to be generated. The device may determine that the floating-point function is to be replaced with a replacement construct before the fixed-point program code is generated. The replacement construct may be described in the programming language and may be capable of conversion from the floating-point representation to a fixed-point representation. The device may determine parameters associated with generating the replacement construct. The parameters may be determined based on an evaluation of the floating-point function. The device may generate the replacement construct based on the parameters. The device may replace the floating-point function with the replacement construct.
    Type: Grant
    Filed: January 17, 2014
    Date of Patent: January 1, 2019
    Assignee: The MathWorks, Inc.
    Inventors: Muthiah Annamalai, Kiran K. Kintali, Srinivas Muddana
  • Patent number: 10157246
    Abstract: A method of specifying and configuring a causal relationship between the dynamics of a graphical model and the execution of components of the model is disclosed. Model component execution is tied to the occurrence of model events. Model events are first defined in the modeling environment. The occurrence of conditions in the model specified in the definition of the event causes the event to be “posted”. Model components that have been associated with the occurrence of the event “receive” the notice of the posting of the event and then execute. Random components within a subsystem may be designated to execute upon the occurrence of an event, as may non-contiguous components within a model. The association between model events and component execution may be specified without drawing graphical indicators connecting components in the view of the model.
    Type: Grant
    Filed: September 25, 2015
    Date of Patent: December 18, 2018
    Assignee: The MathWorks, Inc.
    Inventors: Peter S. Szpak, Matthew J. Englehart
  • Patent number: 10157045
    Abstract: Systems and methods may automatically generate code for deep learning networks. The systems methods may provide a code generation framework for generating target specific code. The code generation framework may include one or more predefined class hierarchies for constructing objects of the generated code. The objects of the class hierarchies may provide an interface to predefined libraries of deep learning functions optimized for use on a target platform. The systems and methods may perform one or more optimizations on the code being generated.
    Type: Grant
    Filed: November 17, 2017
    Date of Patent: December 18, 2018
    Assignee: The MathWorks, Inc.
    Inventors: Girish Venkataramani, Rama P. Kokku, Jayaprabha Shankar, James L. Brock, Chun-Yu Shei, Vijaya Raghavan, Yaohung Tsai
  • Patent number: 10152767
    Abstract: A device may receive information associated with an input image that includes a first quantity of rows. The device may store pixel values, for a second quantity of rows, based on the information associated with the input image. The second quantity of rows may be different than the first quantity of rows. The device may generate an output image, that includes a projective transformation of the input image, based on the stored pixel values. The device may provide information associated with the output image.
    Type: Grant
    Filed: December 15, 2016
    Date of Patent: December 11, 2018
    Assignee: The MathWorks, Inc.
    Inventors: Michael Neil Hanson, Garrey William Rice, Brian K. Ogilvie, Witold R. Jachimczyk
  • Patent number: 10140099
    Abstract: Systems and methods generate code from an executable model. The model may operate on variables having floating point data types. The systems and methods may unpack the sign, exponent, and mantissa components of the floating point variables, and interpret them as boolean, integer, or fixed-point data types. The systems and methods may include operators that operate on the extracted sign, exponent, and mantissa components, and that produce sign, exponent, and mantissa outputs having boolean, integer or fixed-point data types. The systems and methods may pack the sign, exponent, and mantissa components of the output into an integer and reinterpret the integer as a floating point data type. Having replaced the floating point data types with boolean, integer or fixed-point data types, the generated code may be suitable for programmable logic devices and/or microcontrollers that lack Floating Point Units (FPUs).
    Type: Grant
    Filed: January 4, 2017
    Date of Patent: November 27, 2018
    Assignee: The MathWorks, Inc.
    Inventors: Kiran K. Kintali, Shomit Dutta, Anand S. Krishnamoorthi, Ebrahim Mehran Mestchian
  • Patent number: 10114917
    Abstract: Systems and methods automatically generate code from an executable model. The code may be generated from one or more in-memory representations constructed for the model. The in-memory representations may be analyzed, and portions that can be mapped to DSP slices of a programmable logic device may be identified. The portions may be modified based on information for a particular programmable logic device, such as the structure of the device's DSP slices. The modifications may ensure that elements of the generated code get mapped to DSP slices, when the generated code is used to synthesize the programmable logic device.
    Type: Grant
    Filed: August 1, 2016
    Date of Patent: October 30, 2018
    Assignee: The MathWorks, Inc.
    Inventors: Girish Venkataramani, Purshottam Vishwakarma, Rama Kokku
  • Patent number: 10116500
    Abstract: A device generates a block for a model associated with a system, and the system is associated with middleware. The block subscribes to information generated by the middleware based on communication between the middleware and the system. The device receives subscriber configuration information for configuring the block, and creates, based on the subscriber configuration information, a signal that converts the information generated by the middleware into a format compatible with the model.
    Type: Grant
    Filed: March 2, 2015
    Date of Patent: October 30, 2018
    Assignee: The MathWorks, Inc.
    Inventors: Xianchao Long, Justyna Zander, David Koh, Gautam K. Vallabha, Pieter J. Mosterman
  • Patent number: 10095487
    Abstract: A device may obtain program code, determine variables based on the program code, execute or analyze the program code, and determine values of the variables based on the executing or analyzing. The device may determine a range for each variable based on positions of at least one significant digit for the values. The range may be determined based on a count of a quantity of occurrences of the at least one significant digit for the values. The device may determine relationships between the variables based on the executing or analyzing, and may determine one or more effects on the range for the variables based on the relationships between the variables. The device may generate a visualization that presents the range for the variables, the relationships between the variables, and the one or more effects on the range for the variables, and may provide the visualization for display.
    Type: Grant
    Filed: October 31, 2016
    Date of Patent: October 9, 2018
    Assignee: The MathWorks, Inc.
    Inventors: Vaidehi Venkatesan, Thomas A. Bryan, Julia P. Wall
  • Patent number: 10095814
    Abstract: A device is configured to receive delay information associated with a model including a set of model elements and one or more delay elements. The delay information may identify a model element, of the set of model elements, and a quantity of delay to be associated with the model element. The model may be associated with a total quantity of delay. The device is configured to determine accumulated delay information based on the model, and to determine a set of retiming values associated with the set of model elements. The device is configured to redistribute the one or more delay elements associated with the model, based on the set of retiming values, to satisfy the quantity of delay to be associated with the model element, and to maintain the total quantity of delay associated with the model. The device is configured to provide the redistributed model.
    Type: Grant
    Filed: February 20, 2014
    Date of Patent: October 9, 2018
    Assignee: The MathWorks, Inc.
    Inventors: Partha Biswas, Yongfeng Gu, Zhihong Zhao
  • Patent number: 10095513
    Abstract: A device may store dependency information for a group of software components provided by a technical computing environment. The group of software components may include a first software component and a second software component and may identify the second software component as being a dependent software component of the first software component. The device may obtain an application generated via the technical computing environment and may determine that the application invokes the first software component. The device may access the dependency information based on the application invoking the first software component and may determine that the first software component invokes the second software component based on the dependency information. The device may generate a deployable form of the application that allows the application to run in another computing environment.
    Type: Grant
    Filed: November 9, 2015
    Date of Patent: October 9, 2018
    Assignee: The MathWorks, Inc.
    Inventor: Peter Webb
  • Patent number: 10096261
    Abstract: A device may receive a single artifact. The single artifact may encapsulate a group of modules with permissions associated with generating a user interface for computer-based coursework. A first module, of the group of modules, may be associated with a first permission of the permissions. A second module, of the group of modules, may be associated with a second permission of the permissions. The device may populate a user interface with information and one or more user interface elements based on the group of modules, the permissions, and a level of user of a user utilizing the user interface.
    Type: Grant
    Filed: August 5, 2015
    Date of Patent: October 9, 2018
    Assignee: The MathWorks, Inc.
    Inventors: Santosh C. Kasula, Loren P. Dean, Henry H. Atkins, Jarrod M. Rivituso
  • Patent number: 10089089
    Abstract: A device may receive input code that includes one or more input objects. The input code may be used in connection with generation of output code. The output code, when generated, may include one or more output objects, corresponding to and different than the one or more input objects. The device may receive or determine conversion information identifying a conversion operation to perform to generate the one or more output objects based on the one or more input objects. The conversion information may be received separately from the input code. The device may generate, based on the conversion information and the input code, an intermediate representation. The intermediate representation may include one or more annotations corresponding to the one or more input objects and defining the conversion operation. The device may compile, based on the intermediate representation, the output code. The device may execute or provide the output code.
    Type: Grant
    Filed: June 1, 2016
    Date of Patent: October 2, 2018
    Assignee: The MathWorks, Inc.
    Inventors: Anand Krishnamoorthi, Kiran K. Kintali, Ebrahim Mehran Mestchian, Srinivas Muddana
  • Patent number: 10078717
    Abstract: Systems and methods automatically generate optimized hardware description language code for a model created in a modeling environment. A training tool selects and provides scripts to a hardware synthesis tool chain that direct the tool chain to synthesize hardware components for core components of the modeling environment. A report generated by the tool chain is evaluated to extract performance data for the core components, and the performance data is stored in a library. An optimization tool estimates the performance of the model using the performance data in the library. Based on the performance estimate and an analysis of the model, the optimization tool selects an optimization technique which it applies to the model generating a revised. Estimating performance, and selecting and applying optimizations may be repeated until a performance constraint is satisfied or a termination criterion is met.
    Type: Grant
    Filed: December 5, 2014
    Date of Patent: September 18, 2018
    Assignee: The MathWorks, Inc.
    Inventors: Girish Venkataramani, Yongfeng Gu, Rama Kokku
  • Patent number: 10078738
    Abstract: In a graphical modeling environment, a method of providing varying levels of protection relating to functionalities associated with at least some elements of a block diagram model, the method including: receiving a selection of one of the elements; receiving an indication of a desired authorization required to use at least one function of the selected element; implementing the indicated authorization for the use of the at least one function; and preventing, without obtaining of the authorization, an attempted use of the at least one function.
    Type: Grant
    Filed: February 28, 2014
    Date of Patent: September 18, 2018
    Assignee: The MathWorks, Inc.
    Inventor: William C. Wendling
  • Patent number: 10055203
    Abstract: A method of receiving a state chart that includes two or more state blocks, and an implicit event command in a graphical portion of the state chart. One of the state blocks includes textual code understood by a textual engine of a technical computing environment (TCE). The implicit event command is not understood by a graphical engine of the TCE. The method further transforms the implicit event command into a form that is understood by the graphical engine, and initiates execution of the state chart. During execution of the state chart, the transformed implicit event command is parsed by a computing device to identify an event associated with a first state block, and a command. When the event occurs during execution of the state chart, the command initiates execution of another state block, the second state block being initiated without an explicit event command being provided therein.
    Type: Grant
    Filed: May 23, 2014
    Date of Patent: August 21, 2018
    Assignee: The MathWorks, Inc.
    Inventors: Srinath Avadhanula, Pieter J. Mosterman, Ebrahim Mestchian
  • Patent number: 10025566
    Abstract: Scheduling techniques transform dataflow graphs (DFGs), for example, of digital signal processing (DSP) arrangements of filters, into efficient schedules for concurrent execution on processing resources coupled to a memory. A DSP arrangement may be represented by an executable model having interconnected filters represented by model elements. The techniques may apply scheduling transforms according to a classification of the model elements based on a lifetime of their internal states (e.g., finite or infinite). Exemplary scheduling transforms may include unfolding, coordinated loop scheduling and pipelining to parallelize a DFG and enhance overall performance, i.e., reduce average sample execution time of the DSP arrangement. Notably, the scheduling transforms may aggregate (i.e., merge) multiple finite state model elements for concurrent execution and repeat execution of infinite state model elements to achieve the overall improved performance.
    Type: Grant
    Filed: October 7, 2016
    Date of Patent: July 17, 2018
    Assignee: The MathWorks, Inc.
    Inventors: Masud Ahmed, Paulo J. Pacheco, Donald P. Orofino, II
  • Patent number: 10013536
    Abstract: A software license management system may include an activation server that provides permission to activate a software product. The activation server may receive receiving a request to validate activation of the software and refreshing license information for the software in response to the request to validate. The server may additionally receive a request to re-designate the license information for the software product and may update license information for the software in response to the request to re-designate the software product.
    Type: Grant
    Filed: October 7, 2008
    Date of Patent: July 3, 2018
    Assignee: The MathWorks, Inc.
    Inventors: Loren Dean, Linda Cotter, Leslie Mehrez, Gerard McElhinney, John N. Little
  • Patent number: 10001977
    Abstract: A system and method identifies a set of operations or tasks, such as functions, of a programming system or technical computing environment based on a selection of input data. The technical computing environment may have a plurality of operations that may be called and executed. The operations may operate on one or more input arguments that may need to satisfy certain constraints. Upon selection of input data, a matching engine may classify the input data, and compare the classifications of the input data to the input argument constraints of a plurality of operations. The matching engine may identify those operations whose input argument constraints are satisfied by the selected input data, as well as those operations whose input argument constraints are not satisfied by the selected input data. The matching and non-matching operations may be provided to an action unit, which may be configured to perform some task or action with regard to some or all of the operations.
    Type: Grant
    Filed: June 5, 2009
    Date of Patent: June 19, 2018
    Assignee: The MathWorks, Inc.
    Inventors: James Gareth Owen, Claudia Gaudagnini Wey
  • Patent number: 9996597
    Abstract: According to some embodiments, a method for processing input data comprises creating a MapReducer object corresponding to a MapReduce environment; and receiving, by a MapReduce interface, a plurality of input parameters comprising the input data; a mapper function; a reducer function; and the MapReducer object; and using the MapReduce interface to process the input data by one or more processors in the MapReduce environment using the mapper function and the reducer function. According to some embodiments, the method further comprises creating a second MapReducer object, wherein the second MapReducer object corresponds to a second MapReduce environment; receiving, by the MapReduce interface, the second MapReducer object in place of the first MapReducer object; and utilizing the MapReduce interface to process the input data by the one or more processors in the second MapReduce environment using the mapper function and the reducer function.
    Type: Grant
    Filed: August 13, 2014
    Date of Patent: June 12, 2018
    Assignee: The MathWorks, Inc.
    Inventors: Penelope Anderson, Richard Amos, Yashwanth Annapureddy, Nicholas Haddad, Aaditya Kalsi, Thomas Lane, Jocelyn Martin, Michael Procopio, Anandan Rangasamy, James Stewart, Wei Wang