SymbolicC++: An Introduction to Computer Algebra using Object-Oriented Programming

Size: px
Start display at page:

Download "SymbolicC++: An Introduction to Computer Algebra using Object-Oriented Programming"

Transcription

1 SymbolicC++: An Introduction to Computer Algebra using Object-Oriented Programming

2 Springer-Verlag London Ltd.

3 Tan Kiat Shi, Willi-Hans Steeb and Yorick Hardy SymbolicC ++: An Introdurtion to Computer Algebra using Objert-Oriented Programming 2nd extended and revised edition i Springer

4 Tan KiatShi ILOG Co. Ltd., Tokyo, Japan Willi-Hans Steeb Y orick Hardy International School for Scientific Computing, Rand Africaans University, Johannesburg, South Africa ISBN Springer-Verlag London Berlin Heidelberg British Library Cataloguing in Publication Data Tan, Kiat Shi Syrnbolic C++ : an introduction to computer algebra using Object-oriented programming. - 2nd rev.ed. l. Object-oriented programming 2. C++ (Computer program language) 3. Algebra - Data processing 1. Title II. Steeb, W.-H. III. Hardy, Yorick 512'.00285'5133 ISBN ISBN (ebook) DOI / Library of Congress Cataloging-in-Publication Data A catalog record for this book is available from the Library of Congress Apart from any fair dealing for the purposes of research or private study, or criticism or review, as permitted under the Copyright, Designs and Patents Act 1988, this publication may only be reproduced, stored or transmitted, in any form or by any means, with the prior permission in writing of the publishers, or in the case of reprographic reproduction in accordance with the terms of licences issued by the Copyright Licensing Agency. Enquiries concerning reproduction outside those terms should be sent to the publishers. Springer-Verlag London 2000 Originally published by Springer-Verlag London Limited in 2000 The use of registered names, trademarks etc. in this publication does not imply, even in the absence of a specific statement, that such names are exempt from the relevant laws and regulations and therefore free for general use. The publisher makes no representation, express or implied, with regard to the accuracy of the information contained in this book and cannot accept any legal responsibility or liability for any errors or omissions that may bemade. Typesetting: Camera ready by authors 34/ Printed on acid-free paper SPIN

5 Preface In this text we will show how object-oriented programming can be used to implement a symbolic algebra system and how the system is applied to different areas in mathematics and physics. In the most restrictive sense, computer algebra is used for the manipulation of scientific and engineering formulae. Usually, a mathematical formula described in the programming languages such as C, Fortran and Pascal can only be evaluated numerically, by assigning the respective values to each variable. However, the same formula may be treated as a mathematical object in a symbolic algebra system, which allows formal transformation, such as differentiation, integration and series expansion, on top of the numerical manipulations. This is therefore an indispensable tool for research and scientific computation. Object-oriented programming has created a new era for programming in computer science as it has been suggested as a possible solution to software development. Basically, object-oriented programming is an important approach to analyzing problems, designing systems and building solutions. By applying this method effectively, the software products become less error prone, easier to maintain, more reusable and extensible. The purpose of this book is to demonstrate how the features of object-oriented programming may be applied to the development of a computer algebra system. Among the many object-oriented programming languages available nowadays, we have selected C++ as our programming language. It is the most widely used object-oriented programming language, which has been successfully utilized by many programmers in various application areas. The design is based partly on acknowledged principles and partly on solid experience and feedback from actual use. Many experienced individuals and organizations in the industry and academia use C++. On top of the reasons stated above, we have selected C++ over other object-oriented languages because of its efficiency in execution speed and its utilization of pointers and templates. Chapter 1 introduces the general notion of Computer Algebra. We discuss the essential properties and requirements of a computer algebra system. Some pitfalls and limitations are also listed for reference. Finally, we present a computer algebra system - SymbolicC++ This new system has many advantages over existing computer algebra systems. A brief summary of features anel function ali ties is given. v

6 VI PREFACE Chapter 2 presents the general mathematics for a computer algebra system. We describe how fundamental mathematical quantities are built up to form more complex mathematical structures. Chapter 3 gives a brief introduction to some computer algebra systems available in the market place, such as Reduce, Maple, Axiom, Mathematica and MuPAD. The basic operations are described for each system. Examples are used to demonstrate the features of these systems. The basic concepts of object-oriented programming, such as objects, classes, abstract data types, message passing, inheritance, polymorphism and so on are introduced in Chapter 4. Examples are given to assist the readers in understanding these important concepts. The object-oriented language Java is discussed in detail and two classes are developed. Finally, the chapter briefly describes three other object-oriented programming languages - Eiffel, Smalltalk and Oberon. In Chapter 5, we introduce the language tools in C++ Along with the description, we construct the String data type, which serves as a carriage for introducing the facilities available in C++. Some other examples are also given. The Standard Template Library is also introduced together with a large number of examples. Finally we describe recursion. By the end of this chapter, all the features needed in the book will have been introduced. Chapter 6 gives a collection of useful classes for computer algebra. We investigate very long integers, rational numbers, complex numbers, quaternions, exact derivatives, vectors, matrices, arrays, strings, bit vectors, finite sets and polynomials. They are the building blocks of mathematics as described in Chapter 2. The internal structures and external interfaces of these classes are described in great detail. In Chapter 7, we describe how a mathematical expression can be constructed using object-oriented techniques. We introduce the new computer algebra system SymbolicC++ and describe its internal representations and public interfaces. Several examples are also presented to demonstrate the functionalities of the system. In Chapter 8, we apply the classes developed in Chapters 6 and 7 to problems in mathematics and physics. Applications are categorized according to classes. Several classes may be used simultaneously to solve a particular problem. Many interesting problems are presented, such as ghost solutions, Pade approximant, Lie series techniques, Picard's method, Mandelbrot set, etc. In Chapter 9, we discuss how the programming language Lisp can be used to implement a computer algebra system. We implement an algebraic simplification and differentiation program. Furthermore, we develop a Lisp system using the objectoriented language C++.

7 PREFACE VII The header files of the classes (abstract data type) introduced in Chapters 6 and 7 are listed in Chapter 10, while in Chapter 11, we show how a PVM (Parallel Virtual Machine) can be used with abstract data types. In Chapter 12, we describe some error handling techniques. We introduce the concept of exception handling. Examples are also given for demonstration purposes. Finally, in Chapter 13 we show how Gnuplot and PostScript can be used to draw figures. The level of presentation is such that one can study the subject early on in ones education in science. There is a balance between practical programming and the underlying language. The book is ideally suited for use in lectures on symbolic computation and object-oriented programming. The beginner will also benefit from the book. The reference list gives a collection of textbooks useful in the study of the computer language C++ [6], [13], [23], [29], [31], [37], [45], [55]. For data structures we refer to Budd (1994) [9]. For applications in science we refer to Steeb et al (1993) [48], Steeb (1994) [49] and Steeb (1999) [52]. The C++ programs have been tested with all newer C++ compilers which comply to the C++ Standard and include an implementation of the Standard Template Library. Without doubt, this book can be extended. If you have comments or suggestions, we would be pleased to have them. The addresses of the authors are: Willi-Hans Steeb: whs~na.rau.ac.za Tan Kiat Shi: Yorick Hardy: steeb_wh~yahoo.com ktan~ilog.co.jp yorickhardy~yahoo.com SymbolicC++ was developed by the International School for Scientific Computing. The Web pages of the International School for Scientific Computing are The second web page also provides the header files for SymbolicC++

8 Contents 1 Introduction 1.1 What is Computer Algebra? Properties of Computer Algebra Systems 1.3 Pitfalls in Computer Algebra Systems. 1.4 Design of a Computer Algebra System 2 Mathematics for Computer Algebra 2.1 Rings and Fields 2.2 Integers Rational Numbers. 2.4 Real Numbers Complex Numbers 2.6 Vectors and Matrices 2.7 Quaternions Polynomials Differentiation Integration Commutativity and Noncommutativity 2.12 Tensor and Kronecker Product Exterior Product Computer Algebra Systems 3.1 Introduction Reduce Basic Operations Example Maple Basic Operations Example Axiom Basic Operations Example Mathematica Basic Operations IX

9 x CONTENTS Example MuPAD Basic Operations Example... 4 Object-Oriented Programming 4.1 Objects, Classes and Abstract Data Types Objects Abstract Data Types (ADT) Classes Message Passing. 4.3 Inheritance Polymorphism Inclusion Polymorphism Operation Polymorphism Parametric Polymorphism 4.5 Object-Oriented Languages C Java Other Object-Oriented Languages. 4.6 Summary Basic Tools in C Pointers and References 5.2 Classes Constructors and Destructor. 5.4 Copy Constructor and Assignment Operator 5.5 Type Conversion Operator Overloading. 5.7 Class Templates Function Templates. 5.9 Friendship Inheritance Virtual Functions 5.12 Wrapper Class Standard Template Library Introduction The Namespace Concept The Vector Class The List Class The Stack Class The Queue Class The Deque Class The Bit Set Class

10 CONTENTS XI The Set Class The Map Class The Algorithm Class Recursion Summary Classes for Computer Algebra The Very long Integer Class Abstraction Data Fields Constructors Operators Type Conversion Operators Private Member Functions Other Functions Streams The Rational Number Class Abstraction Template Class Data Fields Constructors Operators Type Conversion Operators Private Member Functions Other Functions Streams The Complex Number Class Abstraction Template Class Data Fields Constructors Operators Type Conversion Operators Other Functions The Quaternion Class Abstraction Template Class Data Fields Constructors Operators Other Functions Streams The Derive Class Abstraction 225

11 XII Data Fields Constructors Operators Member Functions Possible Improvements 6.6 The Vector Class Abstraction Templates Data Fields Constructors Operators Member Functions and Norms Streams The Matrix Class Abstraction Data Fields Constructors Operators Member Functions and Norms. 6.8 Array Classes Abstraction Data Fields Constructors Operators Member Functions 6.9 The String Class Abstraction Data Fields Constructors Operators Member Functions Type Conversion Operator Possible Improvements 6.10 Bit Vectors Abstraction Data Fields Constructors Member Functions Private Member Functions 6.11 The Linked List Class Abstraction The List Class The Link Class The List Iterator CONTENTS

12 CONTENTS 6.12 The Polynomial Class Abstraction Template Class Data Fields Constructors Operators Type Conversion Operators Private Member Functions Other Functions Streams OExample The Set Class Abstraction Template Class Data Fields Constructors Operators Member Functions Streams Example Summary... 7 The Symbolic Class 7.1 Object-Oriented Design The Expression Tree Polymorphism of the Expression Tree. 7.2 Data Fields and Types of Symbol 7.3 Constructors. 7.4 Operators Functions Simplification Canonical Forms Simplification Rules and Member Functions 7.7 Commutativity Symbolic and Numeric Interface 7.9 Summary Applications 8.1 Bit Vector Class Prime Numbers 8.2 Verylong Class Big Prime Numbers Inverse Map and Denumerable Set Godel Numbering... XIII

13 XIV 8.3 Verylong and Rational Classes Logistic Map Contracting Mapping Theorem Ghost Solutions Iterated Function Systems Verylong, Rational and Derive Classes Logistic Map and Ljapunov Exponent. 8.5 Verylong, Rational and Complex Classes Mandelbrot Set 8.6 Symbolic Class Polynomials Cumulant Expansion Exterior Product Symbolic Class and Symbolic Differentiation First Integrals Spherical Harmonics Nambu Mechanics Taylor Expansion of Differential Equations Commutator of Two Vector Fields Lie Derivative and Killing Vector Field 8.8 Matrix Class Hilbert-Schmidt Norm Lax Pair and Hamilton System Pade Approximant Array and Symbolic Classes Pseudospherical Surfaces and Soliton Equations 8.10 Polynomial and Symbolic Classes Picard's Method Lie Series Techniques Spectra of Small Spin Clusters Nonlinear Maps and Chaotic Behaviour Numerical-Symbolic Application Summary Lisp and Computer Algebra 9.1 Introduction Basic Functions of Lisp Examples from Symbolic Computation Polynomials Simplifications Differentiation Lisp System based on C++ CONTENTS

14 CONTENTS XV 10 Program Listing Verylong Class Rational Class Complex Class Quaternion Class Derive Class Vector Class Matrix Class Array Class String Class O.10Bit Vector Class Linked List Class Polynomial Class 546 1O.13Set Class O.14Symbolic Class PVM and Abstract Data Types Error Handling Techniques Error State Exception Handling Gnuplot and PostScript 659 Bibliography 663 Index 667

Graphics Programming in c++

Graphics Programming in c++ Graphics Programming in c++ Springer London Berlin Heidelberg New York Barcelona Budapest Hong Kong Milan Paris Santa Clara Singapore Tokyo Mark Walmsley Graphics Programming in c++ Writing Graphics Applications

More information

Essential Series. Springer-Verlag London Ltd.

Essential Series. Springer-Verlag London Ltd. Essential Series Springer-Verlag London Ltd. Also in this series: Essential Visual Basic 4.0 fast 3-540-19998-5 Essential Delphi 2.0 fast 3-540-76026-1 Essential Java fast 3-540-76052-0 Essential Visual

More information

Foundations of 3D Graphics Programming

Foundations of 3D Graphics Programming Foundations of 3D Graphics Programming Jim X. Chen Edward J. Wegman Foundations of 3D Graphics Programming Using JOGL and Java3D With 139 Figures Jim X. Chen, PhD Computer Science Department George Mason

More information

Inside Relational Databases with Examples in Access

Inside Relational Databases with Examples in Access Inside Relational Databases with Examples in Access Inside Relational Databases with Examples in Access Mark Whitehorn and Bill Marklyn 123 Mark Whitehorn Applied Computing Division, University of Dundee,

More information

Web Development with Java

Web Development with Java Web Development with Java Tim Downey Web Development with Java Using Hibernate, JSPs and Servlets Tim Downey, BS, MS Florida International University Miami, FL 33199, USA British Library Cataloguing in

More information

Interfacing with C++

Interfacing with C++ Interfacing with C++ Jayantha Katupitiya Kim Bentley Interfacing with C++ Programming Real-World Applications ABC Dr. Jayantha Katupitiya Senior Lecturer School of Mechanical and Manufacturing Engineering

More information

Stereo Scene Flow for 3D Motion Analysis

Stereo Scene Flow for 3D Motion Analysis Stereo Scene Flow for 3D Motion Analysis Andreas Wedel Daniel Cremers Stereo Scene Flow for 3D Motion Analysis Dr. Andreas Wedel Group Research Daimler AG HPC 050 G023 Sindelfingen 71059 Germany andreas.wedel@daimler.com

More information

Network Performance Analysis

Network Performance Analysis Network Performance Analysis Network Performance Analysis Thomas Bonald Mathieu Feuillet Series Editor Pierre-Noël Favennec First published 2011 in Great Britain and the United States by ISTE Ltd and

More information

COMPUTATIONAL DYNAMICS

COMPUTATIONAL DYNAMICS COMPUTATIONAL DYNAMICS THIRD EDITION AHMED A. SHABANA Richard and Loan Hill Professor of Engineering University of Illinois at Chicago A John Wiley and Sons, Ltd., Publication COMPUTATIONAL DYNAMICS COMPUTATIONAL

More information

CLASSIC DATA STRUCTURES IN JAVA

CLASSIC DATA STRUCTURES IN JAVA CLASSIC DATA STRUCTURES IN JAVA Timothy Budd Oregon State University Boston San Francisco New York London Toronto Sydney Tokyo Singapore Madrid Mexico City Munich Paris Cape Town Hong Kong Montreal CONTENTS

More information

Enterprise Networks and Telephony

Enterprise Networks and Telephony Enterprise Networks and Telephony Springer London Berlin Heidelberg New York Barcelona Hong Kong Milan Paris Santa Clara Singapore Tokyo Solange Ghernaouti-Helie and Arnaud Dufour Enterprise Networks and

More information

c-xsc R. Klatte U. Kulisch A. Wiethoff C. Lawo M. Rauch A C++ Class Library for Extended Scientific Computing Springer-Verlag Berlin Heidelberg GmbH

c-xsc R. Klatte U. Kulisch A. Wiethoff C. Lawo M. Rauch A C++ Class Library for Extended Scientific Computing Springer-Verlag Berlin Heidelberg GmbH R. Klatte U. Kulisch A. Wiethoff C. Lawo M. Rauch c-xsc A C++ Class Library for Extended Scientific Computing Translated by G. F. Corliss C. Lawo R. Klatte A. Wiethoff C. Wolff Springer-Verlag Berlin Heidelberg

More information

Gengsheng Lawrence Zeng. Medical Image Reconstruction. A Conceptual Tutorial

Gengsheng Lawrence Zeng. Medical Image Reconstruction. A Conceptual Tutorial Gengsheng Lawrence Zeng Medical Image Reconstruction A Conceptual Tutorial Gengsheng Lawrence Zeng Medical Image Reconstruction A Conceptual Tutorial With 163 Figures Author Prof. Dr. Gengsheng Lawrence

More information

Research on Industrial Security Theory

Research on Industrial Security Theory Research on Industrial Security Theory Menggang Li Research on Industrial Security Theory Menggang Li China Centre for Industrial Security Research Beijing, People s Republic of China ISBN 978-3-642-36951-3

More information

Boolean Reasoning. The Logic of Boolean Equations. Frank Markham Brown Air Force Institute of Technology

Boolean Reasoning. The Logic of Boolean Equations. Frank Markham Brown Air Force Institute of Technology Boolean Reasoning The Logic of Boolean Equations by Frank Markham Brown Air Force Institute of Technology ff Kluwer Academic Publishers Boston/Dordrecht/London Contents Preface Two Logical Languages Boolean

More information

Modeling and Simulation in Scilab/Scicos with ScicosLab 4.4

Modeling and Simulation in Scilab/Scicos with ScicosLab 4.4 Modeling and Simulation in Scilab/Scicos with ScicosLab 4.4 Stephen L. Campbell, Jean-Philippe Chancelier and Ramine Nikoukhah Modeling and Simulation in Scilab/Scicos with ScicosLab 4.4 Second Edition

More information

The Art of Lisp Programming

The Art of Lisp Programming The Art of Lisp Programming Robin Jones Clive Maynard Ian Stewart The Art of Lisp Programming With 12 Illustrations Springer-Verlag London Berlin Heidelberg N ew York Paris Tokyo Hong Kong Robin Jones

More information

Preface... (vii) CHAPTER 1 INTRODUCTION TO COMPUTERS

Preface... (vii) CHAPTER 1 INTRODUCTION TO COMPUTERS Contents Preface... (vii) CHAPTER 1 INTRODUCTION TO COMPUTERS 1.1. INTRODUCTION TO COMPUTERS... 1 1.2. HISTORY OF C & C++... 3 1.3. DESIGN, DEVELOPMENT AND EXECUTION OF A PROGRAM... 3 1.4 TESTING OF PROGRAMS...

More information

Preface to the Second Edition Preface to the First Edition Brief Contents Introduction to C++ p. 1 A Review of Structures p.

Preface to the Second Edition Preface to the First Edition Brief Contents Introduction to C++ p. 1 A Review of Structures p. Preface to the Second Edition p. iii Preface to the First Edition p. vi Brief Contents p. ix Introduction to C++ p. 1 A Review of Structures p. 1 The Need for Structures p. 1 Creating a New Data Type Using

More information

0 Mastering Microsoft Office

0 Mastering Microsoft Office 0 Mastering Microsoft Office MACMILLAN MASTER SERIES Accounting Advanced English Language Advanced Pure Mathematics Arabic Banking Basic Management Biology British Politics Business Administration Business

More information

Jinkun Liu Xinhua Wang. Advanced Sliding Mode Control for Mechanical Systems. Design, Analysis and MATLAB Simulation

Jinkun Liu Xinhua Wang. Advanced Sliding Mode Control for Mechanical Systems. Design, Analysis and MATLAB Simulation Jinkun Liu Xinhua Wang Advanced Sliding Mode Control for Mechanical Systems Design, Analysis and MATLAB Simulation Jinkun Liu Xinhua Wang Advanced Sliding Mode Control for Mechanical Systems Design, Analysis

More information

WITH C+ + William Ford University of the Pacific. William Topp University of the Pacific. Prentice Hall, Englewood Cliffs, New Jersey 07632

WITH C+ + William Ford University of the Pacific. William Topp University of the Pacific. Prentice Hall, Englewood Cliffs, New Jersey 07632 DATA STRUCTURES WITH C+ + William Ford University of the Pacific William Topp University of the Pacific Prentice Hall, Englewood Cliffs, New Jersey 07632 CONTENTS Preface xvii CHAPTER 1 INTRODUCTION 1

More information

Object-Oriented Programming and Java

Object-Oriented Programming and Java Object-Oriented Programming and Java Danny Poo Derek Kiong Swarnalatha Ashok Object-Oriented Programming and Java Second edition Dr Danny Poo School of Computing National University of Singapore, Singapore

More information

The Internet of Things

The Internet of Things The Internet of Things The Internet of Things Connecting Objects to the Web Edited by Hakima Chaouchi First published 2010 in Great Britain and the United States by ISTE Ltd and John Wiley & Sons, Inc.

More information

Mastering. Pascal and Delphi Programming

Mastering. Pascal and Delphi Programming Mastering Pascal and Delphi Programming MACMILLAN MASTER SERIES Accounting Advanced English Language Advanced Pure Mathematics Arabic Banking Basic Management Biology British Politics Business Administration

More information

Spring 2003 Instructor: Dr. Shahadat Hossain. Administrative Matters Course Information Introduction to Programming Techniques

Spring 2003 Instructor: Dr. Shahadat Hossain. Administrative Matters Course Information Introduction to Programming Techniques 1 CPSC2620 Advanced Programming Spring 2003 Instructor: Dr. Shahadat Hossain 2 Today s Agenda Administrative Matters Course Information Introduction to Programming Techniques 3 Course Assessment Lectures:

More information

Production Methods: Behind the Scenes of Virtual Inhabited 3D Worlds

Production Methods: Behind the Scenes of Virtual Inhabited 3D Worlds Production Methods: Behind the Scenes of Virtual Inhabited 3D Worlds Springer-Verlag London Ltd. Kim Halskov Madsen (Ed.) Production Methods Behind the Scenes ofvirtuallnhabited 3D Worlds Springer Kim

More information

Fundamentals of Operating Systems. Fifth Edition

Fundamentals of Operating Systems. Fifth Edition Fundamentals of Operating Systems Fifth Edition Fundamentals of Operating Systems A.M. Lister University of Queensland R. D. Eager University of Kent at Canterbury Fifth Edition Springer Science+Business

More information

New Syllabus Mathematics for 0-Level 1

New Syllabus Mathematics for 0-Level 1 New Syllabus Mathematics for 0-Level 1 New Syllabus Mathematics for 0-Level 1 New Syllabus Mathematics for 0-Level 2 New Syllabus Mathematics for 0-Levell Owen Perry, B.Sc., Head of Department of General

More information

PREREQUISITE:Individualized Educational Plan with this component. REQUIRED MATERIALS: notebook, pencil, calculator, agenda book

PREREQUISITE:Individualized Educational Plan with this component. REQUIRED MATERIALS: notebook, pencil, calculator, agenda book #936 MATH 10 SMALL GROUP GRADE: 10 LEVEL: Small Group CREDITS: 10 PREREQUISITE:Individualized Educational Plan with this component BASIC TEXT: Algebra, Prentice Hall Informal Geometry, Prentice Hall, 1992

More information

GENETIC ALGORITHMS, FLOATING POINT NUMBERS AND APPLICATIONS

GENETIC ALGORITHMS, FLOATING POINT NUMBERS AND APPLICATIONS International Journal of Modern Physics C Vol. 16, No. 11 (2005) 1811 1816 c World Scientific Publishing Company GENETIC ALGORITHMS, FLOATING POINT NUMBERS AND APPLICATIONS YORICK HARDY and WILLI-HANS

More information

NICOLAS BOURBAKI ELEMENTS OF MATHEMATICS. General Topology. Chapters 1-4. Springer-Verlag Berlin Heidelberg New York London Paris Tokyo

NICOLAS BOURBAKI ELEMENTS OF MATHEMATICS. General Topology. Chapters 1-4. Springer-Verlag Berlin Heidelberg New York London Paris Tokyo NICOLAS BOURBAKI ELEMENTS OF MATHEMATICS General Topology Chapters 1-4 Springer-Verlag Berlin Heidelberg New York London Paris Tokyo ADVICE TO THE READER v CONTENTS OF THE ELEMENTS OF MATHEMATICS SERIES

More information

Yves Nievergelt. Wavelets Made Easy. Springer Science+Business Media, LLC

Yves Nievergelt. Wavelets Made Easy. Springer Science+Business Media, LLC Wavelets Made Easy Yves Nievergelt Wavelets Made Easy Springer Science+Business Media, LLC Yves Nievergelt Department of Mathematics Eastem Washington University Cheney, WA 99004-2431 USA Library of Congress

More information

Low Level X Window Programming

Low Level X Window Programming Low Level X Window Programming Ross J. Maloney Low Level X Window Programming An Introduction by Examples 123 Dr. Ross J. Maloney Yenolam Corporation Booragoon, WA Australia ISBN 978-3-319-74249-6 ISBN

More information

DEPARTMENT OF COMPUTER APPLICATIONS B.C.A. - FIRST YEAR ( REGULATION) SECOND SEMESTER LESSON PLAN SRM INSTITUTE OF SCIENCE AND TECHNOLOGY

DEPARTMENT OF COMPUTER APPLICATIONS B.C.A. - FIRST YEAR ( REGULATION) SECOND SEMESTER LESSON PLAN SRM INSTITUTE OF SCIENCE AND TECHNOLOGY DEPARTMENT OF COMPUTER APPLICATIONS B.C.A. - FIRST YEAR (2015-2016 REGULATION) SECOND SEMESTER LESSON PLAN SRM INSTITUTE OF SCIENCE AND TECHNOLOGY FACULTY OF SCIENCE AND HUMANITIES SRM NAGAR, KATTANKULATHUR

More information

George Grätzer. Practical L A TEX

George Grätzer. Practical L A TEX Practical L A TEX George Grätzer Practical L A TEX 123 George Grätzer Toronto, ON, Canada Additional material to this book can be downloaded from http://extras.springer.com ISBN 978-3-319-06424-6 ISBN

More information

Digital Signal Processing System Design: LabVIEW-Based Hybrid Programming Nasser Kehtarnavaz

Digital Signal Processing System Design: LabVIEW-Based Hybrid Programming Nasser Kehtarnavaz Digital Signal Processing System Design: LabVIEW-Based Hybrid Programming Nasser Kehtarnavaz Digital Signal Processing System Design: LabVIEW-Based Hybrid Programming by Nasser Kehtarnavaz University

More information

An Introduction to Programming with IDL

An Introduction to Programming with IDL An Introduction to Programming with IDL Interactive Data Language Kenneth P. Bowman Department of Atmospheric Sciences Texas A&M University AMSTERDAM BOSTON HEIDELBERG LONDON NEW YORK OXFORD PARIS SAN

More information

Computer Science Workbench. Editor: Tosiyasu L. Kunii

Computer Science Workbench. Editor: Tosiyasu L. Kunii Computer Science Workbench Editor: Tosiyasu L. Kunii H. Kitagawa T.L. Kunii The U nnortnalized Relational Data Model F or Office Form Processor Design With 78 Figures Springer-Verlag Tokyo Berlin Heidelberg

More information

Subject: OBJECT ORIENTED PROGRAMMING WITH C++ Paper (U.G): BCA -231 S. No. Course Outcomes

Subject: OBJECT ORIENTED PROGRAMMING WITH C++ Paper (U.G): BCA -231 S. No. Course Outcomes Subject: OBJECT ORIENTED PROGRAMMING WITH C++ Paper (U.G): BCA -231 1 In Object Oriented Programming in C++ the students will study about the extension version of c language and the Features of C++, Classes

More information

Data Structures in C++ Using the Standard Template Library

Data Structures in C++ Using the Standard Template Library Data Structures in C++ Using the Standard Template Library Timothy Budd Oregon State University ^ ADDISON-WESLEY An imprint of Addison Wesley Longman, Inc. Reading, Massachusetts Harlow, England Menlo

More information

Cpt S 122 Data Structures. Course Review Midterm Exam # 2

Cpt S 122 Data Structures. Course Review Midterm Exam # 2 Cpt S 122 Data Structures Course Review Midterm Exam # 2 Nirmalya Roy School of Electrical Engineering and Computer Science Washington State University Midterm Exam 2 When: Monday (11/05) 12:10 pm -1pm

More information

The Information Retrieval Series. Series Editor W. Bruce Croft

The Information Retrieval Series. Series Editor W. Bruce Croft The Information Retrieval Series Series Editor W. Bruce Croft Sándor Dominich The Modern Algebra of Information Retrieval 123 Sándor Dominich Computer Science Department University of Pannonia Egyetem

More information

Second Generation Wavelets and Applications

Second Generation Wavelets and Applications Second Generation Wavelets and Applications Maarten Jansen and Patrick Oonincx Second Generation Wavelets and Applications With 58 Figures Maarten Jansen, MSc Engineering, PhD Computer Science Department

More information

C++ (Non for C Programmer) (BT307) 40 Hours

C++ (Non for C Programmer) (BT307) 40 Hours C++ (Non for C Programmer) (BT307) 40 Hours Overview C++ is undoubtedly one of the most widely used programming language for implementing object-oriented systems. The C++ language is based on the popular

More information

Production Rendering

Production Rendering Production Rendering Ian Stephenson (Ed.) Production Rendering Design and Implementation 12 3 Ian Stephenson, DPhil National Centre for Computer Animation, Bournemouth, UK British Library Cataloguing in

More information

Towards Intelligent Summarising and Browsing of Mathematical Expressions

Towards Intelligent Summarising and Browsing of Mathematical Expressions Towards Intelligent Summarising and Browsing of Mathematical Expressions Ivelina Stoyanova I.Stoyanova@alumni.bath.ac.uk Department of Computer Science University of Bath, Bath BA2 7AY United Kingdom Abstract.

More information

Computer Architecture

Computer Architecture Computer Architecture Springer-Verlag Berlin Heidelberg GmbH Silvia M. Mueller Wolfgang J. Paul Computer Architecture Complexity and Correctness With 214 Figures and 185 Tables Springer Silvia Melitta

More information

A. Portela A. Charafi Finite Elements Using Maple

A. Portela A. Charafi Finite Elements Using Maple A. Portela A. Charafi Finite Elements Using Maple Springer -V erlag Berlin Heidelberg GmbH Engineering ONLINE library http://www.springer.deleng inel A. Portela A. Charafi Finite Elements Using Maple A

More information

Mastering. Spreadsheets Q

Mastering. Spreadsheets Q Mastering Spreadsheets Q Macmillan Master Series Accounting Arabic Astronomy Background to Business Banking Basic Management Biology British Politics Business Communication Business Law Business Microcomputing

More information

STEPHEN WOLFRAM MATHEMATICADO. Fourth Edition WOLFRAM MEDIA CAMBRIDGE UNIVERSITY PRESS

STEPHEN WOLFRAM MATHEMATICADO. Fourth Edition WOLFRAM MEDIA CAMBRIDGE UNIVERSITY PRESS STEPHEN WOLFRAM MATHEMATICADO OO Fourth Edition WOLFRAM MEDIA CAMBRIDGE UNIVERSITY PRESS Table of Contents XXI a section new for Version 3 a section new for Version 4 a section substantially modified for

More information

CSCE 210/2201 Data Structures and Algorithms. Prof. Amr Goneid

CSCE 210/2201 Data Structures and Algorithms. Prof. Amr Goneid CSCE 20/220 Data Structures and Algorithms Prof. Amr Goneid Fall 208 / Spring 209 CSCE 20/220 DATA STRUCTURES AND ALGORITHMS Prof. Amr Goneid Instructor: Prof. Amr Goneid E-mail: goneid@aucegypt.edu Office:

More information

CSCE 210/2201 Data Structures and Algorithms. Prof. Amr Goneid. Fall 2018

CSCE 210/2201 Data Structures and Algorithms. Prof. Amr Goneid. Fall 2018 CSCE 20/220 Data Structures and Algorithms Prof. Amr Goneid Fall 208 CSCE 20/220 DATA STRUCTURES AND ALGORITHMS Dr. Amr Goneid Course Goals To introduce concepts of Data Models, Data Abstraction and ADTs

More information

Practitioner Series. Springer London Berlin Heidelberg New York Hong Kong Milan Paris Santa Clara Singapore Tokyo

Practitioner Series. Springer London Berlin Heidelberg New York Hong Kong Milan Paris Santa Clara Singapore Tokyo Practitioner Series Springer London Berlin Heidelberg New York Hong Kong Milan Paris Santa Clara Singapore Tokyo Series Editor Russel Winder Editorial Board Frank Bott Nic Holt Kay Hughes Elizabeth Hull

More information

Mathematical Tools in Computer Graphics with C# Implementations Table of Contents

Mathematical Tools in Computer Graphics with C# Implementations Table of Contents Mathematical Tools in Computer Graphics with C# Implementations by Hardy Alexandre, Willi-Hans Steeb, World Scientific Publishing Company, Incorporated, 2008 Table of Contents List of Figures Notation

More information

LESSON PLAN B.C.A. - FIRST YEAR ( REGULATION) SECOND SEMESTER

LESSON PLAN B.C.A. - FIRST YEAR ( REGULATION) SECOND SEMESTER DEPARTMENT OF COMPUTER APPLICATIONS LESSON PLAN B.C.A. - FIRST YEAR (2014-2015 REGULATION) SECOND SEMESTER SRM UNIVERSITY FACULTY OF SCIENCE AND HUMANITIES SRM NAGAR, KATTANKULATHUR 603 203 SRM UNIVERSITY

More information

A First Course in Scientific Computing

A First Course in Scientific Computing A First Course in Scientific Computing Symbolic, Graphic, and Numeric Modeling Using Maple, Java, Mathematica, and Fortran90 RUBIN H. LANDAU Contributors: Robyn Wangberg (Mathematica), Kyle Augustson (Fortran90),

More information

Applied Interval Analysis

Applied Interval Analysis Luc Jaulin, Michel Kieffer, Olivier Didrit and Eric Walter Applied Interval Analysis With Examples in Parameter and State Estimation, Robust Control and Robotics With 125 Figures Contents Preface Notation

More information

Contents. I Basics 1. Copyright by SIAM. Unauthorized reproduction of this article is prohibited.

Contents. I Basics 1. Copyright by SIAM. Unauthorized reproduction of this article is prohibited. page v Preface xiii I Basics 1 1 Optimization Models 3 1.1 Introduction... 3 1.2 Optimization: An Informal Introduction... 4 1.3 Linear Equations... 7 1.4 Linear Optimization... 10 Exercises... 12 1.5

More information

An Object Oriented Programming with C

An Object Oriented Programming with C An Object Oriented Programming with C By Tanmay Kasbe Dr. Ravi Singh Pippal IDEA PUBLISHING WWW.ideapublishing.in i Publishing-in-support-of, IDEA PUBLISHING Block- 9b, Transit Flats, Hudco Place Extension

More information

Functional Programming Using F#

Functional Programming Using F# Functional Programming Using F# This introduction to the principles of functional programming using F# shows how to apply theoretical concepts to produce succinct and elegant programs. The book shows how

More information

Logic Programming with Prolog

Logic Programming with Prolog Logic Programming with Prolog Max Bramer Logic Programming with Prolog Max Bramer, BSc, PhD, CEng, FBCS, FIEE, FRSA, ILTM Department of Computer Science and Software Engineering University of Portsmouth

More information

Philip Andrew Simpson. FPGA Design. Best Practices for Team-based Reuse. Second Edition

Philip Andrew Simpson. FPGA Design. Best Practices for Team-based Reuse. Second Edition FPGA Design Philip Andrew Simpson FPGA Design Best Practices for Team-based Reuse Second Edition Philip Andrew Simpson San Jose, CA, USA ISBN 978-3-319-17923-0 DOI 10.1007/978-3-319-17924-7 ISBN 978-3-319-17924-7

More information

CompuScholar, Inc. Alignment to Nevada "Computer Science" Course Standards

CompuScholar, Inc. Alignment to Nevada Computer Science Course Standards CompuScholar, Inc. Alignment to Nevada "Computer Science" Course Standards Nevada Course Details: Course Name: Computer Science Primary Cluster: Information and Media Technologies Standards Course Code(s):

More information

Fundamentals of Discrete Mathematical Structures

Fundamentals of Discrete Mathematical Structures Fundamentals of Discrete Mathematical Structures THIRD EDITION K.R. Chowdhary Campus Director JIET School of Engineering and Technology for Girls Jodhpur Delhi-110092 2015 FUNDAMENTALS OF DISCRETE MATHEMATICAL

More information

Fundamentals of the Java Programming Language

Fundamentals of the Java Programming Language Fundamentals of the Java Programming Language Student Guide SL-110 REV E D61798GC10 Edition 1.0 2009 D62399 Copyright 2006, 2009, Oracle and/or its affiliates. All rights reserved. Disclaimer This document

More information

CSc 10200! Introduction to Computing. Lecture 1 Edgardo Molina Fall 2013 City College of New York

CSc 10200! Introduction to Computing. Lecture 1 Edgardo Molina Fall 2013 City College of New York CSc 10200! Introduction to Computing Lecture 1 Edgardo Molina Fall 2013 City College of New York 1 Introduction to Computing Lectures: Tuesday and Thursday s (2-2:50 pm) Location: NAC 1/202 Recitation:

More information

Multidimensional Queueing Models in Telecommunication Networks

Multidimensional Queueing Models in Telecommunication Networks Multidimensional Queueing Models in Telecommunication Networks ThiS is a FM Blank Page Agassi Melikov Leonid Ponomarenko Multidimensional Queueing Models in Telecommunication Networks Agassi Melikov Department

More information

Failure-Modes-Based Software Reading

Failure-Modes-Based Software Reading SPRINGER BRIEFS IN COMPUTER SCIENCE Yang-Ming Zhu Failure-Modes-Based Software Reading SpringerBriefs in Computer Science More information about this series at http://www.springer.com/series/10028 Yang-Ming

More information

An Introduction to Object-Oriented Programming

An Introduction to Object-Oriented Programming An Introduction to Object-Oriented Programming Timothy Budd Oregon State University TT Addison-Wesley Publishing Company Reading, Massachusetts Menlo Park, California New York Don Mills, Ontario Wokingham,

More information

Python Scripting for Computational Science

Python Scripting for Computational Science Hans Petter Langtangen Python Scripting for Computational Science Third Edition With 62 Figures 43 Springer Table of Contents 1 Introduction... 1 1.1 Scripting versus Traditional Programming... 1 1.1.1

More information

CONTENTS. PART 1 Structured Programming 1. 1 Getting started 3. 2 Basic programming elements 17

CONTENTS. PART 1 Structured Programming 1. 1 Getting started 3. 2 Basic programming elements 17 List of Programs xxv List of Figures xxix List of Tables xxxiii Preface to second version xxxv PART 1 Structured Programming 1 1 Getting started 3 1.1 Programming 3 1.2 Editing source code 5 Source code

More information

Integrated Math I. IM1.1.3 Understand and use the distributive, associative, and commutative properties.

Integrated Math I. IM1.1.3 Understand and use the distributive, associative, and commutative properties. Standard 1: Number Sense and Computation Students simplify and compare expressions. They use rational exponents and simplify square roots. IM1.1.1 Compare real number expressions. IM1.1.2 Simplify square

More information

PROBLEM SOLVING WITH FORTRAN 90

PROBLEM SOLVING WITH FORTRAN 90 David R. Brooks PROBLEM SOLVING WITH FORTRAN 90 FOR SCIENTISTS AND ENGINEERS Springer Contents Preface v 1.1 Overview for Instructors v 1.1.1 The Case for Fortran 90 vi 1.1.2 Structure of the Text vii

More information

C++ Programming for Programmers

C++ Programming for Programmers C++ Programming for Programmers Compiled and Presented by Thomas P. Sturm, Ph.D. Graduate Programs in Software Technical Seminar The University of St. Thomas St. Paul, Minnesota Copyright 1992, 1993, 1994,

More information

Object-Oriented Programming and Data Structures

Object-Oriented Programming and Data Structures Java Methods A & AB Object-Oriented Programming and Data Structures Maria Litvin Phillips Academy, Andover, Massachusetts Gary Litvin Skylight Software, Inc. Skylight Publishing Andover, Massachusetts

More information

BACHELOR OF COMPUTER APPLICATIONS (BCA)

BACHELOR OF COMPUTER APPLICATIONS (BCA) BACHELOR OF COMPUTER APPLICATIONS (BCA) BCA/ASSIGN/III/YEAR/14-15 ASSIGNMENTS (For July, 2014 and Jan., 2015 sessions) (3 rd Semester (Revised Syllabus)) (MCS-014, MCS-021, MCS-023, BCS-031, BCSL-032,

More information

Dietrich Paulus Joachim Hornegger. Pattern Recognition of Images and Speech in C++

Dietrich Paulus Joachim Hornegger. Pattern Recognition of Images and Speech in C++ Dietrich Paulus Joachim Hornegger Pattern Recognition of Images and Speech in C++ To Dorothea, Belinda, and Dominik In the text we use the following names which are protected, trademarks owned by a company

More information

ENGINEERING PROBLEM SOLVING WITH C++

ENGINEERING PROBLEM SOLVING WITH C++ ENGINEERING PROBLEM SOLVING WITH C++ Second Edition Delores M. Etter Electrical Engineering Department United States Naval Academy Jeanine A. Ingber Training Consultant Sandia National Laboratories Upper

More information

ADMINISTRATIVE MANAGEMENT COLLEGE

ADMINISTRATIVE MANAGEMENT COLLEGE First Semester ADMINISTRATIVE MANAGEMENT COLLEGE BACHELOR OF COMPUTER APPLICATION COURSE OUTCOME (CO) Problem solving techniques Using C CO 1: Understand the basic concepts of programming, software and

More information

Computer Communications and Networks

Computer Communications and Networks Computer Communications and Networks For other titles published in this series, go to www.springer.com/series/4198 The Computer Communications and Networks series is a range of textbooks, monographs and

More information

I BCS-031 BACHELOR OF COMPUTER APPLICATIONS (BCA) (Revised) Term-End Examination. June, 2015 BCS-031 : PROGRAMMING IN C ++

I BCS-031 BACHELOR OF COMPUTER APPLICATIONS (BCA) (Revised) Term-End Examination. June, 2015 BCS-031 : PROGRAMMING IN C ++ No. of Printed Pages : 3 I BCS-031 BACHELOR OF COMPUTER APPLICATIONS (BCA) (Revised) Term-End Examination 05723. June, 2015 BCS-031 : PROGRAMMING IN C ++ Time : 3 hours Maximum Marks : 100 (Weightage 75%)

More information

Real-Time Graphics Rendering Engine

Real-Time Graphics Rendering Engine Hujun Bao Wei Hua Real-Time Graphics Rendering Engine With 66 figures, 11 of them in color ADVANCED TOPICS IN SCIENCE AND TECHNOLOGY IN CHINA ADVANCED TOPICS IN SCIENCE AND TECHNOLOGY IN CHINA Zhejiang

More information

This content has been downloaded from IOPscience. Please scroll down to see the full text.

This content has been downloaded from IOPscience. Please scroll down to see the full text. This content has been downloaded from IOPscience. Please scroll down to see the full text. Download details: IP Address: 148.251.232.83 This content was downloaded on 22/11/2018 at 08:50 Please note that

More information

Absolute C++ Walter Savitch

Absolute C++ Walter Savitch Absolute C++ sixth edition Walter Savitch Global edition This page intentionally left blank Absolute C++, Global Edition Cover Title Page Copyright Page Preface Acknowledgments Brief Contents Contents

More information

Concepts in Programming Languages

Concepts in Programming Languages Concepts in Programming Languages Marcelo Fiore Computer Laboratory University of Cambridge 2012 2013 (Easter Term) 1 Practicalities Course web page: with lecture

More information

Algebraic Processors

Algebraic Processors Algebraic Processors Algebraic Processors By Pouya Larjani, B.Sc. A Thesis Submitted to the School of Graduate Studies in partial fulfilment of the requirements for the degree of Master of Science Department

More information

MATLAB Numerical Calculations. César Pérez López

MATLAB Numerical Calculations. César Pérez López MATLAB Numerical Calculations César Pérez López MATLAB Numerical Calculations Copyright 2014 by César Pérez López This work is subject to copyright. All rights are reserved by the Publisher, whether the

More information

Traveling Wave Analysis of Partial Differential Equations

Traveling Wave Analysis of Partial Differential Equations Traveling Wave Analysis of Partial Differential Equations Traveling Wave Analysis of Partial Differential Equations Numerical and Analytical Methods with MATLAB R and Maple Graham W. Griffiths City University,

More information

Advanced Data Mining Techniques

Advanced Data Mining Techniques Advanced Data Mining Techniques David L. Olson Dursun Delen Advanced Data Mining Techniques Dr. David L. Olson Department of Management Science University of Nebraska Lincoln, NE 68588-0491 USA dolson3@unl.edu

More information

Continuations provide a novel way to suspend and reexecute

Continuations provide a novel way to suspend and reexecute Continuations provide a novel way to suspend and reexecute computations. 2. ML ( Meta Language ) Strong, compile-time type checking. Types are determined by inference rather than declaration. Naturally

More information

Measuring the effectiveness of your ISMS implementations based on ISO/IEC 27001

Measuring the effectiveness of your ISMS implementations based on ISO/IEC 27001 Measuring the effectiveness of your ISMS implementations based on ISO/IEC 27001 Information Security Management Systems Guidance series The Information Security Management Systems (ISMS) series of books

More information

Introduction to Programming with Fortran

Introduction to Programming with Fortran Introduction to Programming with Fortran Ian D. Chivers and Jane Sleightholme Introduction to Programming with Fortran With Coverage of Fortran 90, 95, 2003, and 77 Ian D. Chivers, BSc, PGCEd, MSc, MBCS

More information

Practical C++ Programming

Practical C++ Programming SECOND EDITION Practical C++ Programming Steve Oualline O'REILLY' Beijing Cambridge Farnham Koln Paris Sebastopol Taipei Tokyo Preface xv Part I. The Basics 1. What Is C++? 3 A Brief History of C++ 3 C++

More information

MASTERING COBOL PROGRAMMING

MASTERING COBOL PROGRAMMING MASTERING COBOL PROGRAMMING MACMILLAN MASTER SERIES Banking Basic English Law Basic Management Biology British Politics Business Communication Business Microcomputing Chemistry COBOL Programming Commerce

More information

Java 2. Course Outcome Summary. Western Technical College. Course Information. Course History. Course Competencies

Java 2. Course Outcome Summary. Western Technical College. Course Information. Course History. Course Competencies Western Technical College 10152155 Java 2 Course Outcome Summary Course Information Description Career Cluster Instructional Level Total Credits 4.00 Total Hours 90.00 The goal as programmers, is to create

More information

C++ Programming for Programmers using Microsoft Visual C Professional

C++ Programming for Programmers using Microsoft Visual C Professional C++ Programming for Programmers using Microsoft Visual C++ 6.0 Professional Compiled and Presented by Thomas P. Sturm, Ph.D. Graduate Programs in Software Technical Seminar The University of St. Thomas

More information

Digital Functions and Data Reconstruction

Digital Functions and Data Reconstruction Digital Functions and Data Reconstruction Li M. Chen Digital Functions and Data Reconstruction Digital-Discrete Methods 123 Li M. Chen University of the District of Columbia Washington, DC, USA ISBN 978-1-4614-5637-7

More information

INTRODUCING FORTRAN 90

INTRODUCING FORTRAN 90 INTRODUCING FORTRAN 90 Springer Berlin Heidelberg New Yorlc Barcelona Budapest HongKong London Milan Paris Tokyo Ian Chivers and Jane Sleightholme INTRODUCING FORTRAN 90, Springer Ian David Chivers, B.Sc.,

More information

VALLIAMMAI ENGINEERING COLLEGE

VALLIAMMAI ENGINEERING COLLEGE VALLIAMMAI ENGINEERING COLLEGE SRM Nagar, Kattankulathur 603 203 DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING QUESTION BANK B.E. - Electrical and Electronics Engineering IV SEMESTER CS6456 - OBJECT ORIENTED

More information