Search NASA⌕ Search

SEARCH · Search NASA

Results for “C# Programming Language”

Search indexed NASA NTRS and DOE OSTI research on propulsion, heat transfer, battery materials and energy systems. Follow report and document links to the original sources.

Quote a phrase for an exact phrase match. Source license links do not imply unrestricted reuse.

At least 379 records · Page 21

Spectral Bounds on Hyperbolic 3-Manifolds: Associativity and the Trace Formula

We constrain the low-energy spectra of Laplace operators on closed hyperbolic manifolds and orbifolds in three dimensions, including the standard Laplace--Beltrami operator on functions and the Laplacian on powers of the cotangent bundle. Our approach employs linear programming techniques to derive rigorous bounds by leveraging two types of spectral identities. The first type, inspired by the conformal bootstrap, arises from the consistency of the spectral decomposition of the product of Laplace eigensections, and involves the Laplacian spectra as well as integrals of triple products of eigensections. We formulate these conditions in the language of representation theory of PSL 2 (C) and use them to prove upper bounds on the first and second Laplacian eigenvalues. The second type of spectral identities follows from the Selberg trace formula. We use them to find upper bounds on the spectral gap of the Laplace--Beltrami operator on hyperbolic 3-orbifolds, as well as on the systole length of hyperbolic 3-manifolds, as a function of the volume. Further, we prove that the spectral gap λ 1 of the Laplace--Beltrami operator on all closed hyperbolic 3-manifolds satisfies λ 1 < 47.32. Along the way, we use the trace formula to estimate the low-energy spectra of a large set of example orbifolds and compare them with our general bounds, finding that the bounds are nearly sharp in several cases.

Bonifacio, James [University of Mississippi, MS (U↗

PS: A nonprocedural language with data types and modules

The Problem Specification (PS) nonprocedural language is a very high level language for algorithm specification. PS is suitable for nonprogrammers, who can specify a problem using mathematically-oriented equations; for expert programmers, who can prototype different versions of a software system for evaluation; and for those who wish to use specifications for portions (if not all) of a program. PS has data types and modules similar to Modula-2. The compiler generates C code. PS is first shown by example, and then efficiency issues in scheduling and code generation are discussed.

Gokhale, M. B.↗

Software For Computing Image Ratios

RATIO_TOOL is interactive computer program for viewing and analyzing large sets of multispectral image data created by imaging spectrometer. Uses ratios between intensities in different spectral bands in order to spot significant areas of interest within multispectral image. Each image band viewed iteratively, or selected image band of set of data requested and displayed. When image ratios computed, result displayed as grayscale image. Written in C Language.

Yates, Gigi L.↗

Flexible Method for Inter-object Communication in C++

A method has been developed for organizing and sharing large amounts of information between objects in C++ code. This method uses a set of object classes to define variables and group them into tables. The variable tables presented here provide a convenient way of defining and cataloging data, as well as a user-friendly input/output system, a standardized set of access functions, mechanisms for ensuring data integrity, methods for interprocessor data transfer, and an interpretive language for programming relationships between parameters. The object-oriented nature of these variable tables enables the use of multiple data types, each with unique attributes and behavior. Because each variable provides its own access methods, redundant table lookup functions can be bypassed, thus decreasing access times while maintaining data integrity. In addition, a method for automatic reference counting was developed to manage memory safely.

Curlett, Brian P.↗

Software For Real-Time Simulation Of Subsystems

The Real-Time Software Simulation of Small Imbedded System (SSO) computer program developed for use in simulating number of systems and subsystems of space shuttle Columbia. These systems and subsystems include system control module (SCM), ground support equipment and test assembly (GSE/TA), and support system for orbiter experiments (OEX). Consists of SCM, orbiter experiments tape recorder, and orbiter experiments pulse-code-modulation (PCM) data system. Consists of four subprograms written in C language.

Favors, Dwight A.↗

Flight software development for the isothermal dendritic growth experiment

The Isothermal Dendritic Growth Experiment (IDGE) is a microgravity materials science experiment scheduled to fly in the cargo bay of the shuttle on the United States Microgravity Payload (USMP) carrier. The experiment will be operated by real-time control software which will not only monitor and control onboard experiment hardware, but will also communicate, via downlink data and uplink commands, with the Payload Operations Control Center (POCC) at NASA George C. Marshall Space Flight Center (MSFC). The software development approach being used to implement this system began with software functional requirements specification. This was accomplished using the Yourdon/DeMarco methodology as supplemented by the Ward/Mellor real-time extensions. The requirements specification in combination with software prototyping was then used to generate a detailed design consisting of structure charts, module prologues, and Program Design Language (PDL) specifications. This detailed design will next be used to code the software, followed finally by testing against the functional requirements. The result will be a modular real-time control software system with traceability through every phase of the development process.

Levinson, Laurie H.↗

Flight software development for the isothermal dendritic growth experiment

The Isothermal Dendritic Growth Experiment (IDGE) is a microgravity materials science experiment scheduled to fly in the cargo bay of the shuttle on the United States Microgravity Payload (USMP) carrier. The experiment will be operated by real-time control software which will not only monitor and control onboard experiment hardware, but will also communicate, via downlink data and unlink commands, with the Payload Operations Control Center (POCC) at NASA George C. Marshall Space Flight Center (MSFC). The software development approach being used to implement this system began with software functional requirements specification. This was accomplished using the Yourdon/DeMarco methodology as supplemented by the Ward/Mellor real-time extensions. The requirements specification in combination with software prototyping was then used to generate a detailed design consisting of structure charts, module prologues, and Program Design Language (PDL) specifications. This detailed design will next be used to code the software, followed finally by testing against the functional requirements. The result will be a modular real-time control software system with traceability through every phase of the development process.

Levinson, Laurie H.↗

Data reduction software for LORAN-C flight test evaluation

A set of programs designed to be run on an IBM 370/158 computer to read the recorded time differences from the tape produced by the LORAN data collection system, convert them to latitude/longitude and produce various plotting input files are described. The programs were written so they may be tailored easily to meet the demands of a particular data reduction job. The tape reader program is written in 370 assembler language and the remaining programs are written in standard IBM FORTRAN-IV language. The tape reader program is dependent upon the recording format used by the data collection system and on the I/O macros used at the computing facility. The other programs are generally device-independent, although the plotting routines are dependent upon the plotting method used. The data reduction programs convert the recorded data to a more readily usable form; convert the time difference (TD) numbers to latitude/longitude (lat/long), to format a printed listing of the TDs, lat/long, reference times, and other information derived from the data, and produce data files which may be used for subsequent plotting.

Fischer, J. P.↗

TSS-Thermal Synthesizer System

Thermal Synthesizer System (TSS) is integrated set of thermal-analysis application programs designed to solve problems encountered by thermal engineers. Combines functionality of Systems Improved Numerical Differencing Analyzer/Fluid Integrator (SINDA/FLUINT) and radiation analysis with friendly and easily understood user-interface environment coupled with powerful interactive color graphics and geometric modeling capability. Enables thermal engineers to spend more time solving engineering problems instead of laboriously constructing and verifying math models. Written in FORTRAN and C language.

Chimenti, Edward↗

Applications of formal simulation languages in the control and monitoring subsystems of Space Station Freedom

The notions, benefits, and drawbacks of numeric simulation are introduced. Two formal simulation languages, Simpscript and Modsim are introduced. The capabilities of each are discussed briefly, and then the two programs are compared. The use of simulation in the process of design engineering for the Control and Monitoring System (CMS) for Space Station Freedom is discussed. The application of the formal simulation language to the CMS design is presented, and recommendations are made as to their use.

Lacovara, R. C.↗

Using a Large Language Model as a Building Block to Generate Usable Validation and Verification Suite for OpenMP

In the HPC area, both hardware and software move quickly. Often new hardware is developed and deployed, the corresponding software stack, including compilers and other tools, are under active development while leading edge software developers are working to port and tune their applications, all at the same time. While the software ecosystem is in flux, one of the key challenges for users is obtaining insight into the state of implementation of key features in the programming languages and models their applications are using – whether they have been implemented, and whether the implementation conforms to the specification, especially for newly implemented features (less tested by widespread use). OpenMP is one of the most prominent shared memory programming models used for on-node programming in HPC. With the shift towards accelerators (such as GPUs and FPGAs) and heterogeneous programming OpenMP features are getting more complex. It is natural to ask whether generative AI approaches, and large language models (LLMs) in particular, can help in producing validation and verification test suites to allow users better and faster insights into the availability and correctness of OpenMP features of interest. In this work, we explore the use of ChatGPT-4 to generate a suite of tests for OpenMP features. We have chosen a set of directives and clauses, a total of 78 combinations, which first appeared in OpenMP 3.0 (released in May 2008) but are also relevant for accelerators. We prompted ChatGPT to generate tests in the C and Fortran languages, for both host (CPU) and device (accelerator). On the Summit super-computer using the GNU implementation, we found that, of the 78 generated tests 67 C tests and 43 Fortran tests compiled successfully and fewer than those executed to completion. On further analysis we show that not all generated tests are valid. We document the process, results, and provide detailed analysis regarding the quality of tests generated. With the aim of providing input to a production quality validation and verification suite, we manually implement the corrections required to make the tests valid according to the current OpenMP specification. We quantify this effort as small, medium, or large, and record the lines of code changed to correct the invalid tests. With the corrected tests we validate recent implementations from HPE, AMD, and GNU on the Frontier supercomputer. Our experiment and subsequent analysis show that although LLMs are capable of producing HPC specific codes, they are limited by their understanding of the deeper semantics and restrictions of programming models such as OpenMP. Unsurprisingly more commonly used features have better support, while some OpenMP 3.0 directives such as sections and tasking are not universally supported on accelerators. We demonstrate that successful compilation and execution to completion are inadequate metrics for evaluating generated code and that, at this time, commodity LLMs require expert intervention for code verification. This points to gaps in the training data that is currently available for HPC. We demonstrate that with "small" effort 37% of generated invalid C tests and 63% of generated invalid Fortran tests could be corrected. This improves productivity of test generation as we circumvent writing from scratch and the common programming errors associated with it.

Pophale, Swaroop [ORNL] (ORCID:0000000185446367)↗

Network Configuration of Oracle and Database Programming Using SQL

A database can be defined as a collection of information organized in such a way that it can be retrieved and used. A database management system (DBMS) can further be defined as the tool that enables us to manage and interact with the database. The Oracle 8 Server is a state-of-the-art information management environment. It is a repository for very large amounts of data, and gives users rapid access to that data. The Oracle 8 Server allows for sharing of data between applications; the information is stored in one place and used by many systems. My research will focus primarily on SQL (Structured Query Language) programming. SQL is the way you define and manipulate data in Oracle's relational database. SQL is the industry standard adopted by all database vendors. When programming with SQL, you work on sets of data (i.e., information is not processed one record at a time).

Davis, Melton↗

Microphone Phased Array NetCDF/HDF5 Archival Files: Application Program Interface Reference

An application program interface (API) has been developed for the creation and access of structured data files generated by microphone phased arrays utilized in aeroacoustics research. Two structured binary file formats are supported, namely NetCDF (Network Common Data Form) and HDF5 (Hierarchical Data Format) files. The API consists of a library of routines callable from C, Fortran or Matlab, with native versions of the API provided for each language. The libraries are divided into categories for file handling, file definition and initialization, data writing, data recovery, and error handling. The API is intended to provide a mechanism for generating self-describing binary files for long-term archiving of raw and processed data generated by phased array systems.

Humphreys, William M., Jr.↗

SYSTID - A flexible tool for the analysis of communication systems.

Description of the System Time Domain Simulation (SYSTID) computer-aided analysis program which is specifically structured for communication systems analysis. The SYSTID program is user oriented so that very little knowledge of computer techniques and very little programming ability are required for proper application. The program is designed so that the user can go from a system block diagram to an accurate simulation by simply programming a single English language statement for each block in the system. The mathematical and functional models available in the SYSTID library are presented. An example problem is given which illustrates the ease of modeling communication systems. Examples of the outputs available are presented, and proposed improvements are summarized.

Dawson, C. T.↗

Interactive DIF Generator

Interactive DIF Generator (IDG) computer program serves as utility to generate and manipulate directory interchange format (DIF) files. Creates and updates DIF files, sent to NASA's Master Directory, also referred to as International Global Change Directory at Goddard Space Flight Center. Many government and university data systems use Master Directory to advertise availability of research data. IDG is interactive software tool and requires mouse or trackball to operate. Written in C language.

Preheim, Larry E.↗

Expert system for multidisciplinary analysis and optimization using ASTROS

This paper discusses the framework of a Knowledge Based Expert System (KBES) environment to design aerospace structures under structural and aerodynamic constraints using ASTROS (Automated Structural Optimization program). ASTROS is a synthesis tool built around the NASTRAN finite element program. The knowledge base capabilities are discussed for synthesizing in statics, normal mode, steady and unsteady aerodynamic disciplines. A description of the two ASTROS advisor modules the Editor/Bulk Data generator and Post-processor is included. Experiences and issues involved in hierarchical representation of knowledge as menu options at different levels of abstraction are presented. A brief overview of Knowledge Based Systems and the shell CLIPS (C Language Integrated Production System) used to develop the ASTROS Advisor are discussed. Illustrative examples of the advisor in designing airframe structures are also included.

Sarma, Hari K.↗

Structured FORTRAN Preprocessor

SFTRAN3 supports structured programing in FORTRAN environment. Language intended particularly to support two aspects of structured programing -- nestable single-entry control structures and modularization and top-down organization of code. Code designed and written using these SFTRAN3 facilities have fewer initial errors, easier to understand and less expensive to maintain and modify.

Flynn, J. A.↗

MPI nuts and bolts and more [Slides]

MPI (Message-Passing Interface) is a message-passing library interface specification. All parts of this definition are significant. MPI addresses primarily the message-passing parallel programming model, in which data is moved from the address space of one process to that of another process through cooperative operations on each process. . . MPI is a specification, not an implementation; there are multiple implementations of MPI. This specification is for a library interface; MPI is not a language, and all MPI operations are expressed as functions, subroutines, or methods, according to the appropriate language bindings that, for C and Fortran, are part of the MPI standard. MPI Forum is the organization which is responsible for the MPI Specification.

97 MATHEMATICS AND COMPUTING↗