Feb 20, 2002Soumya Mohanty, AEI1 GEO++ A general purpose C++ DSP library Plan of presentation Soumya Mohanty: Overview R. Balasubramanian: MPI Shell, Frame.

Slides:



Advertisements
Similar presentations
Object Oriented Programming
Advertisements

Data Structures.
Overview of Data Structures and Algorithms
Exceptions, Templates, And The Standard Template Library (STL) Chapter 16.
Copyright © 2012 Pearson Education, Inc. Chapter 16: Exceptions, Templates, and the Standard Template Library (STL)
1 Chapter Three Using Methods. 2 Objectives Learn how to write methods with no arguments and no return value Learn about implementation hiding and how.
1 Objects and ClassesStefan Kluth 1.6Objects and Classes 1.6What is an Object? 1.7Objects and Classes 1.8Object Interface, Class Inheritance, Polymorphism.
Slides prepared by Rose Williams, Binghamton University Chapter 14 Generics and the ArrayList Class.
OOP Project Develop an Application which incorporates the following OO Mechanisms and Principals: – Classes Visibility Constructor(s) Class Variable (if.
Slides prepared by Rose Williams, Binghamton University Chapter 14 Generics and the ArrayList Class.
C# Programming: From Problem Analysis to Program Design1 Advanced Object-Oriented Programming Features C# Programming: From Problem Analysis to Program.
Basic Definitions Data Structures: Data Structures: A data structure is a systematic way of organizing and accessing data. Or, It’s the logical relationship.
Chapter 13: Object-Oriented Programming
CSCE 110 PROGRAMMING FUNDAMENTALS WITH C++
1 ES 314 Advanced Programming Lec 2 Sept 3 Goals: Complete the discussion of problem Review of C++ Object-oriented design Arrays and pointers.
1 An Introduction to Visual Basic Objectives Explain the history of programming languages Define the terminology used in object-oriented programming.
Operating Systems Concepts 1. A Computer Model An operating system has to deal with the fact that a computer is made up of a CPU, random access memory.
C++ fundamentals.
Chapter 3.1:Operating Systems Concepts 1. A Computer Model An operating system has to deal with the fact that a computer is made up of a CPU, random access.
LECTURE LECTURE 17 More on Templates 20 An abstract recipe for producing concrete code.
C++ Programming. Table of Contents History What is C++? Development of C++ Standardized C++ What are the features of C++? What is Object Orientation?
Microsoft Visual Basic 2005: Reloaded Second Edition
MT311 Java Application Development and Programming Languages Li Tak Sing( 李德成 )
1 -Defined Functions 1. Goals of this Chapter 2. General Concept 3. Advantages 4. How it works Programmer.
1 CSC 427: Data Structures and Algorithm Analysis Fall 2011 See online syllabus (also available through BlueLine): Course goals:
An Object-Oriented Approach to Programming Logic and Design
Implementation Yaodong Bi. Introduction to Implementation Purposes of Implementation – Plan the system integrations required in each iteration – Distribute.
Data Structures Using C++ 2E
Object Oriented Design and Programming Alan Goude Room: Sheaf 9323.
chap13 Chapter 13 Programming in the Large.
21 Feb 2002Soumya D. Mohanty, AEI1 DCR Plan of presentation Soumya Mohanty: Overview, aims & work done R. Balasubramanian: Details of Hardware, Database.
Object-Oriented Software Development F Software Development Process F Analyze Relationships Among Objects F Class Development F Class Design Guidelines.
Arrays Module 6. Objectives Nature and purpose of an array Using arrays in Java programs Methods with array parameter Methods that return an array Array.
SE: CHAPTER 7 Writing The Program
Chapter 14 Generics and the ArrayList Class Slides prepared by Rose Williams, Binghamton University Copyright © 2008 Pearson Addison-Wesley. All rights.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
C o n f i d e n t i a l 1 Course: BCA Semester: III Subject Code : BC 0042 Subject Name: Operating Systems Unit number : 1 Unit Title: Overview of Operating.
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
Summing Up Object Oriented Design. Four Major Components: Abstraction modeling real-life entities by essential information only Encapsulation clustering.
Apr. 8, 2002Calibration Database Browser Workshop1 Database Access Using D0OM H. Greenlee Calibration Database Browser Workshop Apr. 8, 2002.
Computer Science Projects Internal Assessment. Mastery Item Claimed Justification Where Listed Random Access File – Searching Lines P. 53 Random.
Core Java Introduction Byju Veedu Ness Technologies httpdownload.oracle.com/javase/tutorial/getStarted/intro/definition.html.
Programming with Java © 2002 The McGraw-Hill Companies, Inc. All rights reserved. 1 McGraw-Hill/Irwin Chapter 5 Creating Classes.
Object-Oriented Programming Chapter Chapter
 Objects versus Class  Three main concepts of OOP ◦ Encapsulation ◦ Inheritance ◦ Polymorphism  Method ◦ Parameterized ◦ Value-Returning.
GEO++ Online Detector Characterization System. LIGO-G Z GEO++ working group GEO++ working group Cardiff University: Birmingham University Cardiff.
Data Design and Implementation. Definitions Atomic or primitive type A data type whose elements are single, non-decomposable data items Composite type.
Copyright © 2009 – Curt Hill Standard Template Library An Introduction.
GEO Online Detector Characterization System R. Balasubramanian Cardiff University LSC March 2003 LIGO-G Z.
JAVA: An Introduction to Problem Solving & Programming, 5 th Ed. By Walter Savitch and Frank Carrano. ISBN © 2008 Pearson Education, Inc., Upper.
Object Oriented Programming. OOP  The fundamental idea behind object-oriented programming is:  The real world consists of objects. Computer programs.
Overview of Previous Lesson(s) Over View 3 Program.
Arrays Chapter 7. MIS Object Oriented Systems Arrays UTD, SOM 2 Objectives Nature and purpose of an array Using arrays in Java programs Methods.
CIS 595 MATLAB First Impressions. MATLAB This introduction will give Some basic ideas Main advantages and drawbacks compared to other languages.
Object-Oriented Programming (OOP) and C++
PROGRAMMING FUNDAMENTALS INTRODUCTION TO PROGRAMMING. Computer Programming Concepts. Flowchart. Structured Programming Design. Implementation Documentation.
CSC 243 – Java Programming, Spring, 2014 Week 4, Interfaces, Derived Classes, and Abstract Classes.
CSC 243 – Java Programming, Fall, 2008 Tuesday, September 30, end of week 5, Interfaces, Derived Classes, and Abstract Classes.
Unit 10 Code Reuse. Key Concepts Abstraction Header files Implementation files Storage classes Exit function Conditional compilation Command-line arguments.
Arrays Chapter 7.
Chapter Goals Describe the application development process and the role of methodologies, models, and tools Compare and contrast programming language generations.
Prof. Bhushan Trivedi Director GLS Institute of Computer Technology
Inheritance and Polymorphism
Use of Mathematics using Technology (Maltlab)
Parameter Passing Actual vs formal parameters
Introduction to Data Structure
Simulation And Modeling
Lecture 10 Concepts of Programming Languages
ENERGY 211 / CME 211 Lecture 27 November 21, 2008.
Lecture 3 – Data collection List ADT
Presentation transcript:

Feb 20, 2002Soumya Mohanty, AEI1 GEO++ A general purpose C++ DSP library Plan of presentation Soumya Mohanty: Overview R. Balasubramanian: MPI Shell, Frame IO, FFT David Churches: Database IO Stas Babak: PSD: GEO++ Code examples R. Balasubramanian: A simple data monitor using GEO++

Feb 20, 2002Soumya Mohanty, AEI2 GEO++: What is it? Digital Signal Processing (DSP) library in C++ Also included: MPI Shell, Frame reader, Database IO Designed for analysis of a large volume of continuous data Uses: Implement the DCR algorithm (original motivation) Implement simple data monitors Support Burst and Inspiral searches (mainly IO) Some facts: About 6000 lines of code written & tested. Started Oct 2001 Under CVS control. Documented using DOC++ 4 programmers working part time (weekly teleconferences + a visit). Initially 1 experienced in C++ and C, 2 in C, 1 in Java & C

Feb 20, 2002Soumya Mohanty, AEI3 OOP Object Oriented Programming: Some terminology Consider the implementation of a filter Input : fixed length sequences state information has to be stored to make the output sequences continuous Options for a procedural code: Internal storage inside the function: use static variables  several filters cannot be executed using one function external storage means calling code has to manage what should be a hidden detail

Feb 20, 2002Soumya Mohanty, AEI4 OOP (II) OOP solution : from function to object A filter object can store state info and implement a filter function Several objects of filter class can exist simultaneously each with its own state External code only knows the interface to this object: setting filter coefficients, setting input and output Data hiding  more reliability for a client code Other important features in OOP: inheritance, polymorphism

Feb 20, 2002Soumya Mohanty, AEI5 Design Choices (I) DSP consists of mapping one matrix into another. A lot of DSP is about designing the right map for a given purpose Discrete Fourier Transform maps one vector to another while preserving size Spectrogram maps a vector to a matrix GEO++ design reflects this notion: Data container class Matrix Map classes with Matrices as input/output Map Design classes such as filter design

Feb 20, 2002Soumya Mohanty, AEI6 Design Choices (II) GEO++ Data Containers Essentially one class: Matrix Intuitive to use Actual code: A=B+C; A=B*C; A=0.0; A(5,2)=10.0; Auxiliary classes : IndexSet, MViewer A(I,J)=10.0; //Multiple rows and columns accessed MViewer object acts as a movable window on a bigger matrix Multiple views can be attached to the same matrix Mixed expressions allowed: C=A+B(I,J); Matrix class is derived from the C++ Standard Template Library (STL) vector class Advantage: Memory management already taken care of in STL. we did not write a single line of code for this task.

Feb 20, 2002Soumya Mohanty, AEI7 Design Choices (II) Templates and STL Example: double and float arrays are usually used in the same way but require duplicate code Template class: code written with a placeholder for data type STL: Entirely template based library of fundamental data structures and algorithms. Part of ANSI C++ standard STL Algorithms: sort, find, Set operations etc. can be used on Matrix. Thus we already have a lot of basic Matlab functions. Other data containers such as linked lists, stacks, Sets etc., exist Disadvantage: cannot make a shared object library. Provision exists in ANSI C++ standard. Wait for future compiler versions

Feb 20, 2002Soumya Mohanty, AEI8 Design Choices (III) Maps (I) Maps: Filter, FFTFilt, FastFT, PSD (Welch & AR), Demod, Modulate, ShiftSamples, RngMedian, Resampling, SortMatrix STL already has functions which simply need to be wrapped in a class SortMatrix is an example SortMatrix also finds original indices of sorted elements: not in STL sort Interface: common names for public members SetInput, SetOutput, SetParameters, Run, Reset Convenient from the user’s point of view

Feb 20, 2002Soumya Mohanty, AEI9 Design Choices (III) Maps (II) All maps preserve state Meant for analyzing data from interferometers continuously All maps have default constructors STL vector of maps: elegant way to implement a filter bank Uniformly named private members AllocInternals, GetState, StoreState,... Supports code maintenance To do: Maps should take Map Design objects as arguments FFTFilt could take a type argument that represents different design methods Create Abstract Base classes to derive sets of maps from

Feb 20, 2002Soumya Mohanty, AEI10 Other GEO++ components Map Design Window FirWin: Window based FIR filter design Both are template classes FirWin takes Window type as a type argument Frame IO, Database IO, MPI Shell Following presentations

Feb 20, 2002Soumya Mohanty, AEI11 Summary GEO++ design choices have proven to be elegant and efficient Great environment for rapid development of C++ DSP codes Future: Polish Documentation Add Frame writing and database Input functionality More filter design tools and Integrate LAPACK++ GEO++ will soon be open to all interested users and developers