Patents by Inventor Suraj C. Kothari

Suraj C. Kothari has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Patent number: 11669613
    Abstract: A computer implemented method for analyzing and verifying software for safety and security. A software program comprising a sequence of program statements to be executed is provided. A compact representation of the program is computed, and the subset of program statements that are relevant to a property of the software to be verified is identified. A homomorphism that maps non-relevant program statements to an identity is computed, and the property is verified using the homomorphism.
    Type: Grant
    Filed: May 24, 2021
    Date of Patent: June 6, 2023
    Inventor: Suraj C. Kothari
  • Publication number: 20210374236
    Abstract: A computer implemented method for analyzing and verifying software for safety and security. A software program comprising a sequence of program statements to be executed is provided. A compact representation of the program is computed, and the subset of program statements that are relevant to a property of the software to be verified is identified. A homomorphism that maps non-relevant program statements to an identity is computed, and the property is verified using the homomorphism.
    Type: Application
    Filed: May 24, 2021
    Publication date: December 2, 2021
    Applicant: EnSoft Corp.
    Inventor: Suraj C. Kothari
  • Patent number: 7174536
    Abstract: A method, system, apparatus, and program product for displaying a program slice diagram, which represents source code. The program slice diagram includes a directed graph that has multiple nodes and arcs connecting the nodes. Nodes can correspond to statements within a selected subroutine of the source code, variable references outside the subroutine, or calls made to other subroutines that are considered part of the program slice. Arcs represent data flow dependencies between the nodes. In another aspect, the invention encompasses a software environment for visualizing source code that includes a code browser, a block-level abstract syntax tree viewer, a program slice browser, and a template viewer. This software visualization environment is integrated, allows cross-referencing between its components, and is coupled with a performance visualization environment.
    Type: Grant
    Filed: February 12, 2001
    Date of Patent: February 6, 2007
    Assignee: Iowa State University Research Foundation, Inc.
    Inventors: Suraj C. Kothari, Aravind Krishnaswamy, Yogy Namara, Yunbo Deng
  • Patent number: 6339840
    Abstract: A computer-implemented method and apparatus for parallelizing input computer-program code based on class-specific abstractions. The method includes the steps of providing a class-specific abstraction (CSA), and generating parallelization code based on the CSA and the input code. Other aspects include checking the input code for compliance with the CSA, performing a dependency analysis of the input code for compliance with the CSA, analyzing the control flow of the input code based on the CSA, and generating a block-based representation of a control flow based on index variables in the input code and on the CSA. In one embodiment, the CSA includes a computational-set template, a dependency template, and a set of allowed index-variable access patterns. Yet other aspects include generating synchronization points based on the CSA, mapping a computational set to a virtual array of parallel processors, and mapping the virtual array of parallel processors to a physical array of parallel processors.
    Type: Grant
    Filed: June 2, 1997
    Date of Patent: January 15, 2002
    Assignee: Iowa State University Research Foundation, Inc.
    Inventors: Suraj C. Kothari, Mitra Simanta, Youngtae Kim
  • Patent number: 6243863
    Abstract: A computer-implemented method and apparatus for parallelizing input computer-program code based on class-specific abstractions. The method includes the steps of providing a class-specific abstraction (CSA), and generating parallelization code based on the CSA and the input code. Other aspects include checking the input code for compliance with the CSA, performing a dependency analysis of the input code for compliance with the CSA, analyzing the control flow of the input code based on the CSA, and generating a block-based representation of a control flow based on index variables in the input code and on the CSA. In one embodiment, the CSA includes a computational-set template, a dependency template, and a set of allowed index-variable access patterns. Yet other aspects include generating synchronization points based on the CSA, mapping a computational set to a virtual array of parallel processors, and mapping the virtual array of parallel processors to a physical array of parallel processors.
    Type: Grant
    Filed: August 2, 1999
    Date of Patent: June 5, 2001
    Assignee: Iowa State University Research Foundation, Inc.
    Inventors: Suraj C. Kothari, Mitra Simanta, Youngtae Kim
  • Patent number: 5467427
    Abstract: Hopfield and BAM neural network training or learning rules allowing memorization of a greater number of patterns. Successive over-relaxation is used in the learning rules based on the training patterns and the output vectors. Neural networks trained in this manner can better serve as the neural networks in a variety of pattern recognition and element correlation systems.
    Type: Grant
    Filed: June 6, 1994
    Date of Patent: November 14, 1995
    Assignee: Iowa State University Research Foundation
    Inventors: Suraj C. Kothari, Heekuck Oh