WPEC 2018 / SG43 Paris, France May

Size: px
Start display at page:

Download "WPEC 2018 / SG43 Paris, France May"

Transcription

1 WPEC 2018 / SG43 Paris, France May LLNL-PRES This work was performed under the auspices of the U.S. Department of Energy by under contract DE-AC52-07NA Lawrence Livermore National Security, LLC

2 For brevity I have removed most const and & from C++ examples For example const_iterator find( std::string const &a_label ) const ; is displayed as iterator find( std::string a_label ); 2

3 This talk will mainly focus on GIDI FUDGE already has a lot of stuff 3

4 GNDS has lots of nodes that store a list of objects of a particular type Examples: <reactions> node stores a list of <reaction> nodes <crosssection> node stores a list of 1d functions <distribution> node stores a list of P(µ,E E) s FUDGE and GIDI use a Suite class to store these: next slide The <styles> node has a special instance of the Suite class GNDS has links that need to be constructured/followed Example from a <resonancereactions> node <link href= /reactionsuite/reactions/reaction[@label='u239 + photon ]"/> FUDGE and GIDI use an Ancestry class inherited by all other classes: more later 4

5 The Suite class acts like the python OrderedDict from collections import OrderedDict That is, items can be accessed via their label (which must be unique) or their order in the Suited (i.e., index) For example the distribution node <angulartwobody label="eval >... </angulartwobody> <angulartwobody label="montecarlo >... </angulartwobody> <multigroup3d label="multigroup_0 >... </multigroup3d> <multigroup3d label="multigroup_1 >... </multigroup3d> distribution[ MultiGroup_0 ] or distribution[2] are the same Iteration returns items in the order that they were entered An important other method is add 5

6 Has three main members moniker the node name of the node (e.g., reaction in <reaction>) ancestor a pointer to the objects parent attribute used to construct an objects xlink. For example, each reaction needs its label added to its xlink to uniquely refer to it <reaction label= n + (U238_e14 -> U238) > href="/reactionsuite/reactions/reaction[@label='n + (U238_e14 -> U238)']" Has two main members 6

7 reactionsuite styles reactions sums reaction reaction reaction crosssection dist crosssection dist crosssection dist 7

8 std::string moniker( ); Ancestry *ancestor( ); std::string attribute( ); void setancestor( Ancestry *a_ancestor ); Ancestry *root( ); bool ischild( Ancestry *a_child ); bool isparent( Ancestry *a_parent ); bool isroot( ); Ancestry *findinancestry( std::string a_href ); Ancestry *findinancestry2( std::size_t a_index, std::vector<std::string> a_segments ); virtual Ancestry *findinancestry3( std::string a_item ); virtual std::string xlinkitemkey( ); std::string toxlink( ); // Relative and absolute 8

9 void Suite::add( Form *a_form ) { int i1 = 0; for( Suite::iterator iter = begin( ); iter!= end( ); ++iter, ++i1 ) { if( (*iter)->label( ) == a_form->label( ) ) { m_forms[i1] = a_form; return; } } m_map[a_form->label( )] = (int) m_forms.size( ); m_forms.push_back( a_form ); } a_form->setancestor( this ); // Oops, missing a_form->setancestor( this ); in replacement. 9

10 The styles node is a Suite instance but adds the additional method findlabelinlineage std::string *findlabelinlineage( GIDI::Suite a_suite, std::string a_label ); Used to find nearest derived data. For example, consider elastic neutron and proton distributions with multi-group upscattering <angulartwobody label="eval >... </angulartwobody> <multigroup3d label="multigroup_0 >... </multigroup3d> <multigroup3d label="upscat_0 >... </multigroup3d> <angulartwobody label="eval >... </angulartwobody> <multigroup3d label="multigroup_0 >... </multigroup3d> findlabelinlineage( distribution, Upscat_0 ) 10

11 In FUDGE when a child node is added its parent, its parent via setancestror takes ownership There can be an issue if another object also contains the child Example, let crosssection1 and crosssection2 be to crosssection nodes and let data1 be a cross section representation. Now consider the following crosssection1.add( data1 ) crosssection2.add( data1 ) # data1.ancestor = crosssection1 # data1.ancestor = crosssection2 Changing data1 changes both. Changing via crosssection1 also changes both Correct way to do this in FUDGE crosssection1.add( data1 ) crosssection2.add( data1.copy( ) ) 11

12 See Caleb s talk GIDI only does reading Reading XML is slow even with pugixml MCGIDI is passed a GIDI instance FUDGE does reading and writing 12

13 One vs many XYs1d classes GIDI only has one XYs1d class FUDGE has one for every physical property (e.g., cross section, multiplicity, P(u), P(E )) For example crosssection.py as a XYs1d multiplitiy.py as a XYs1d They all inherit from a base XYs1d The cross section suite only allows the XYs1d from crosssection.py to be added to it. Each XYs1d may add/over write additional methods For example, the cross section XYs1d adds the heat method which does not make sense for multiplity 13

14 All reside in the namespace Functions Base - included by all functions axes, dimension, interpolation, etc. members domainmin, domainmax virtual methods Base1d included by all 1d functions As evaluate( double x1 ) method Base2d included by all 2d functions As evaluate( double x2, double x1 ) method Base3d included by all 3d functions As evaluate( double x3, double x2, double x1 ) method 14

15 All reside in the namespace Probabilities Base - included by all probabilities Inherits from Functions::Base Add Xs member Base1d included by all 1d functions As methods evaluate( double x1 ) and sample( double rngvalue, Sampling::Input &a_input ) Note, rngvalue is x0 (y) value and x1 is sampled. Base2d included by all 2d functions As methods evaluate and sample( double x2, double rngvalue, Sampling::Input &a_input ) Base3d included by all 3d functions As evaluate and sample methods 15

16 reaction.crosssection( ) returns a reaction s cross section suite. For example for crosssection in reaction.crosssection reaction.crosssection( Settings::MG settings ) returns a multi-group cross section for reactions 16

17 Styles::Suite styles( ); Suite reactions( ) Suite orphanproducts( ); void productindices( std::set<int> Indices, bool transportablesonly ); int maximumlegendreorder( Settings::MG settings, int productindex ); Styles::TemperatureInfos temperatures( ); bool hasfission( ); 17

18 MG derived class Used to get multi-group data Vector crosssection( Settings::MG a_settings ) Defines style to get data from, multi-group collapsing info, want delayed neutrons included, etc. 18

19 std::vector<double> groupboundaries( Settings::MG settings, int productindex ); Vector inversespeed( Settings::MG settings ); Vector crosssection( Settings::MG settings ); Vector multiplicity( Settings::MG settings, int productindex ); Vector Q( Settings::MG settings, bool final ); Matrix productmatrix( Settings::MG settings, int productindex, int order ); Matrix fissionmatrix( Settings::MG settings, int order ); Vector transportcorrection( Settings::MG settings, int order, transportcorrectiontype transportcorrectiontype ); Vector availableenergy( Settings::MG settings ); Vector averageenergy( Settings::MG settings, int productindex ); Vector depositionenergy( Settings::MG settings ); Vector availablemomentum( Settings::MG settings ); Vector averagemomentum( Settings::MG settings, int productindex ); Vector depositionmomentum( Settings::MG settings ); 19

20 Vector crosssection( Settings::MG settings ); Vector multiplicity( Settings::MG settings, int productindex ); Vector Q( Settings::MG settings, bool final ); Matrix productmatrix( Settings::MG settings, int productindex, int order ); Matrix fissionmatrix( Settings::MG settings, int order ); Vector availableenergy( Settings::MG settings ); Vector averageenergy( Settings::MG settings, int productindex ); Vector depositionenergy( Settings::MG settings ); Vector availablemomentum( Settings::MG settings ); Vector averagemomentum( Settings::MG settings, int productindex ); Vector depositionmomentum( Settings::MG settings ); All of these methods are called by their Protare equivalent methods. The Product class has many of these methods. 20

WPEC 2018 / GNDS-B Paris, France May

WPEC 2018 / GNDS-B Paris, France May WPEC 2018 / GNDS-B Paris, France May 16 2018 LLNL-PRES-749977 This work was performed under the auspices of the U.S. Department of Energy by under contract DE-AC52-07NA27344. Lawrence Livermore National

More information

Status of SG-B: EG-GNDS. D. Brown (BNL)

Status of SG-B: EG-GNDS. D. Brown (BNL) Status of SG-B: EG-GNDS D. Brown (BNL) EG-GNDS Agenda Welcome Introductions & identify governing board members Review minutes of previous meeting Review & Update mandate SG-38 & SG-43 reports Status of

More information

Current status of access routines to ENDF data in AMPX

Current status of access routines to ENDF data in AMPX Current status of access routines to ENDF data in AMPX Dorothea Wiarda WPEC 2018 EG-GNDS Paris, France May 16, 2018 ORNL is managed by UT-Battelle for the US Department of Energy Outline AMPX and ENDF

More information

An abstract tree stores data that is hierarchically ordered. Operations that may be performed on an abstract tree include:

An abstract tree stores data that is hierarchically ordered. Operations that may be performed on an abstract tree include: 4.2 Abstract Trees Having introduced the tree data structure, we will step back and consider an Abstract Tree that stores a hierarchical ordering. 4.2.1 Description An abstract tree stores data that is

More information

Assignment 3 Suggested solutions

Assignment 3 Suggested solutions ECE-250 Algorithms and Data Structures (Winter 2012) Assignment 3 Suggested solutions 1 - Provide the definition of a function swap nodes that swaps two elements in a doubly-linked list by readjusting

More information

September 3, 2001 XML Processing

September 3, 2001 XML Processing XPointer and XLink Michael B. Spring Department of Information Science and Telecommunications University of Pittsburgh spring@imap.pitt.edu http://www.sis.pitt.edu/~spring Context XML adds new capabilities

More information

What if we want the child elements to calculate the offset from the boundaries of the document? CSS LAYOUT. The position Property.

What if we want the child elements to calculate the offset from the boundaries of the document? CSS LAYOUT. The position Property. What if we want the child elements to calculate the offset from the boundaries of the document? CSS LAYOUT The position Property Manesh Jhawar According to W3Schools, The position property specifies the

More information

Reusable, Generic Compiler Analyses and Transformations

Reusable, Generic Compiler Analyses and Transformations Reusable, Generic Compiler Analyses and Transformations Jeremiah Willcock, Andrew Lumsdaine, and Daniel Quinlan Indiana University and Lawrence Livermore National Laboratory This work performed under the

More information

Advanced Systems Programming

Advanced Systems Programming Advanced Systems Programming Introduction to C++ Martin Küttler September 19, 2017 1 / 18 About this presentation This presentation is not about learning programming or every C++ feature. It is a short

More information

Working with Batches of Data

Working with Batches of Data Hartmut Kaiser hkaiser@cct.lsu.edu http://www.cct.lsu.edu/ hkaiser/fall_2012/csc1254.html 2 Abstract So far we looked at simple read a string print a string problems. Now we will look at more complex problems

More information

11 TREES DATA STRUCTURES AND ALGORITHMS IMPLEMENTATION & APPLICATIONS IMRAN IHSAN ASSISTANT PROFESSOR, AIR UNIVERSITY, ISLAMABAD

11 TREES DATA STRUCTURES AND ALGORITHMS IMPLEMENTATION & APPLICATIONS IMRAN IHSAN ASSISTANT PROFESSOR, AIR UNIVERSITY, ISLAMABAD DATA STRUCTURES AND ALGORITHMS 11 TREES IMPLEMENTATION & APPLICATIONS IMRAN IHSAN ASSISTANT PROFESSOR, AIR UNIVERSITY, ISLAMABAD WWW.IMRANIHSAN.COM LECTURES ADAPTED FROM: DANIEL KANE, NEIL RHODES DEPARTMENT

More information

ENDF/B-VII.1 versus ENDFB/-VII.0: What s Different?

ENDF/B-VII.1 versus ENDFB/-VII.0: What s Different? LLNL-TR-548633 ENDF/B-VII.1 versus ENDFB/-VII.0: What s Different? by Dermott E. Cullen Lawrence Livermore National Laboratory P.O. Box 808/L-198 Livermore, CA 94550 March 17, 2012 Approved for public

More information

Data Abstraction. Hwansoo Han

Data Abstraction. Hwansoo Han Data Abstraction Hwansoo Han Data Abstraction Data abstraction s roots can be found in Simula67 An abstract data type (ADT) is defined In terms of the operations that it supports (i.e., that can be performed

More information

Trees. Carlos Moreno uwaterloo.ca EIT https://ece.uwaterloo.ca/~cmoreno/ece250

Trees. Carlos Moreno uwaterloo.ca EIT https://ece.uwaterloo.ca/~cmoreno/ece250 Carlos Moreno cmoreno @ uwaterloo.ca EIT-4103 https://ece.uwaterloo.ca/~cmoreno/ece250 Today's class: We'll discuss one possible implementation for trees (the general type of trees) We'll look at tree

More information

Chapter 10 Implementing Subprograms

Chapter 10 Implementing Subprograms Chapter 10 Implementing Subprograms The General Semantics of Calls and Returns - Definition: The subprogram call and return operations of a language are together called its subprogram linkage Implementing

More information

Intermediate Programming, Spring 2017*

Intermediate Programming, Spring 2017* 600.120 Intermediate Programming, Spring 2017* Misha Kazhdan *Much of the code in these examples is not commented because it would otherwise not fit on the slides. This is bad coding practice in general

More information

ANSI C. Data Analysis in Geophysics Demián D. Gómez November 2013

ANSI C. Data Analysis in Geophysics Demián D. Gómez November 2013 ANSI C Data Analysis in Geophysics Demián D. Gómez November 2013 ANSI C Standards published by the American National Standards Institute (1983-1989). Initially developed by Dennis Ritchie between 1969

More information

CMPUT 403: Strings. Zachary Friggstad. March 11, 2016

CMPUT 403: Strings. Zachary Friggstad. March 11, 2016 CMPUT 403: Strings Zachary Friggstad March 11, 2016 Outline Tries Suffix Arrays Knuth-Morris-Pratt Pattern Matching Tries Given a dictionary D of strings and a query string s, determine if s is in D. Using

More information

CMSC 341 Priority Queues & Heaps. Based on slides from previous iterations of this course

CMSC 341 Priority Queues & Heaps. Based on slides from previous iterations of this course CMSC 341 Priority Queues & Heaps Based on slides from previous iterations of this course Today s Topics Priority Queues Abstract Data Type Implementations of Priority Queues: Lists BSTs Heaps Heaps Properties

More information

Java Object Oriented Design. CSC207 Fall 2014

Java Object Oriented Design. CSC207 Fall 2014 Java Object Oriented Design CSC207 Fall 2014 Design Problem Design an application where the user can draw different shapes Lines Circles Rectangles Just high level design, don t write any detailed code

More information

SERIOUS ABOUT SOFTWARE. Qt Core features. Timo Strömmer, May 26,

SERIOUS ABOUT SOFTWARE. Qt Core features. Timo Strömmer, May 26, SERIOUS ABOUT SOFTWARE Qt Core features Timo Strömmer, May 26, 2010 1 Contents C++ refresher Core features Object model Signals & slots Event loop Shared data Strings Containers Private implementation

More information

Introduction to C++ Introduction. Structure of a C++ Program. Structure of a C++ Program. C++ widely-used general-purpose programming language

Introduction to C++ Introduction. Structure of a C++ Program. Structure of a C++ Program. C++ widely-used general-purpose programming language Introduction C++ widely-used general-purpose programming language procedural and object-oriented support strong support created by Bjarne Stroustrup starting in 1979 based on C Introduction to C++ also

More information

CTF: State-of-the-Art and Building the Next Generation ASE 2017

CTF: State-of-the-Art and Building the Next Generation ASE 2017 CTF: State-of-the-Art and Building the Next Generation ASE 2017 August 15, 2017 Clark Taylor Lawrence Livermore National Laboratory University of Arizona 737334 LLNL-PRES-XXXXXX This work was performed

More information

Introduction to C++ with content from

Introduction to C++ with content from Introduction to C++ with content from www.cplusplus.com 2 Introduction C++ widely-used general-purpose programming language procedural and object-oriented support strong support created by Bjarne Stroustrup

More information

Data Placement Optimization in GPU Memory Hierarchy Using Predictive Modeling

Data Placement Optimization in GPU Memory Hierarchy Using Predictive Modeling Data Placement Optimization in GPU Memory Hierarchy Using Predictive Modeling Larisa Stoltzfus*, Murali Emani, Pei-Hung Lin, Chunhua Liao *University of Edinburgh (UK), Lawrence Livermore National Laboratory

More information

C++ Primer. CS 148 Autumn

C++ Primer. CS 148 Autumn C++ Primer CS 148 Autumn 2018-2019 1 Who is this for? If you are taking this class and are not familiar with some of the features of C++, then this guide is for you. In other words, if any of these words

More information

Chapter 20: Binary Trees

Chapter 20: Binary Trees Chapter 20: Binary Trees 20.1 Definition and Application of Binary Trees Definition and Application of Binary Trees Binary tree: a nonlinear linked list in which each node may point to 0, 1, or two other

More information

C++ Programming Lecture 13 Software Engineering Group

C++ Programming Lecture 13 Software Engineering Group C++ Programming Lecture 13 Software Engineering Group Philipp D. Schubert Contents 1. Introduction to the project 1. Reading files 2. Smith-Waterman algorithm 3. Comparing the sequences / parallelization

More information

AutomaDeD: Scalable Root Cause Analysis

AutomaDeD: Scalable Root Cause Analysis AutomaDeD: Scalable Root Cause Analysis aradyn/dyninst Week March 26, 2012 This work was performed under the auspices of the U.S. Department of Energy by under contract DE-AC52-07NA27344. Lawrence Livermore

More information

Book keeping. Will post HW5 tonight. OK to work in pairs. Midterm review next Wednesday

Book keeping. Will post HW5 tonight. OK to work in pairs. Midterm review next Wednesday Garbage Collection Book keeping Will post HW5 tonight Will test file reading and writing Also parsing the stuff you reads and looking for some patterns On the long side But you ll have two weeks to do

More information

CSCI Trees. Mark Redekopp David Kempe

CSCI Trees. Mark Redekopp David Kempe CSCI 104 2-3 Trees Mark Redekopp David Kempe Trees & Maps/Sets C++ STL "maps" and "sets" use binary search trees internally to store their keys (and values) that can grow or contract as needed This allows

More information

The State and Needs of IO Performance Tools

The State and Needs of IO Performance Tools The State and Needs of IO Performance Tools Scalable Tools Workshop Lake Tahoe, CA August 6 12, 2017 This work was performed under the auspices of the U.S. Department of Energy by Lawrence Livermore National

More information

CS

CS CS 1666 www.cs.pitt.edu/~nlf4/cs1666/ Programming in C++ First, some praise for C++ "It certainly has its good points. But by and large I think it s a bad language. It does a lot of things half well and

More information

Informatik I (D-ITET) Übungsstunde 9, Hossein Shafagh

Informatik I (D-ITET) Übungsstunde 9, Hossein Shafagh Informatik I (D-ITET) Übungsstunde 9, 20.11.2017 Hossein Shafagh shafagh@inf.ethz.ch Self-Assessment III 1) Characters: FILO - 2P for the completely correct answer - 0P otherwise 2) Pointers Self-Assessment

More information

Week 7. Statically-typed OO languages: C++ Closer look at subtyping

Week 7. Statically-typed OO languages: C++ Closer look at subtyping C++ & Subtyping Week 7 Statically-typed OO languages: C++ Closer look at subtyping Why talk about C++? C++ is an OO extension of C Efficiency and flexibility from C OO program organization from Simula

More information

CMSC 341 Lecture 15 Leftist Heaps

CMSC 341 Lecture 15 Leftist Heaps Based on slides from previous iterations of this course CMSC 341 Lecture 15 Leftist Heaps Prof. John Park Review of Heaps Min Binary Heap A min binary heap is a Complete binary tree Neither child is smaller

More information

Advanced Set Representation Methods

Advanced Set Representation Methods Advanced Set Representation Methods AVL trees. 2-3(-4) Trees. Union-Find Set ADT DSA - lecture 4 - T.U.Cluj-Napoca - M. Joldos 1 Advanced Set Representation. AVL Trees Problem with BSTs: worst case operation

More information

Priority Queues and Huffman Trees

Priority Queues and Huffman Trees Priority Queues and Huffman Trees 1 the Heap storing the heap with a vector deleting from the heap 2 Binary Search Trees sorting integer numbers deleting from a binary search tree 3 Huffman Trees encoding

More information

M-ary Search Tree. B-Trees. B-Trees. Solution: B-Trees. B-Tree: Example. B-Tree Properties. Maximum branching factor of M Complete tree has height =

M-ary Search Tree. B-Trees. B-Trees. Solution: B-Trees. B-Tree: Example. B-Tree Properties. Maximum branching factor of M Complete tree has height = M-ary Search Tree B-Trees Section 4.7 in Weiss Maximum branching factor of M Complete tree has height = # disk accesses for find: Runtime of find: 2 Solution: B-Trees specialized M-ary search trees Each

More information

Trees (Part 1, Theoretical) CSE 2320 Algorithms and Data Structures University of Texas at Arlington

Trees (Part 1, Theoretical) CSE 2320 Algorithms and Data Structures University of Texas at Arlington Trees (Part 1, Theoretical) CSE 2320 Algorithms and Data Structures University of Texas at Arlington 1 Trees Trees are a natural data structure for representing specific data. Family trees. Organizational

More information

Recap: Pointers. int* int& *p &i &*&* ** * * * * IFMP 18, M. Schwerhoff

Recap: Pointers. int* int& *p &i &*&* ** * * * * IFMP 18, M. Schwerhoff Recap: Pointers IFMP 18, M. Schwerhoff int* int& *p &i &*&* ** * * * * A 0 A 1 A 2 A 3 A 4 A 5 A 0 A 1 A 2 A 3 A 4 A 5 5 i int* p; A 0 A 1 A 2 A 3 A 4 A 5 5 i p int* p; p = &i; A 0 A 1 A 2 A 3 A 4 A 5

More information

CMSC 341 Lecture 15 Leftist Heaps

CMSC 341 Lecture 15 Leftist Heaps Based on slides from previous iterations of this course CMSC 341 Lecture 15 Leftist Heaps Prof. John Park Review of Heaps Min Binary Heap A min binary heap is a Complete binary tree Neither child is smaller

More information

ECE 2400 Computer Systems Programming, Fall 2017 Prelim 2 Prep

ECE 2400 Computer Systems Programming, Fall 2017 Prelim 2 Prep revision: 2017-11-04-22-45 These problems are not meant to be exactly like the problems that will be on the prelim. These problems are instead meant to represent the kind of understanding you should be

More information

An AVL tree with N nodes is an excellent data. The Big-Oh analysis shows that most operations finish within O(log N) time

An AVL tree with N nodes is an excellent data. The Big-Oh analysis shows that most operations finish within O(log N) time B + -TREES MOTIVATION An AVL tree with N nodes is an excellent data structure for searching, indexing, etc. The Big-Oh analysis shows that most operations finish within O(log N) time The theoretical conclusion

More information

An exceedingly high-level overview of ambient noise processing with Spark and Hadoop

An exceedingly high-level overview of ambient noise processing with Spark and Hadoop IRIS: USArray Short Course in Bloomington, Indian Special focus: Oklahoma Wavefields An exceedingly high-level overview of ambient noise processing with Spark and Hadoop Presented by Rob Mellors but based

More information

Acceleration of HPC applications on hybrid CPU-GPU systems: When can Multi-Process Service (MPS) help?

Acceleration of HPC applications on hybrid CPU-GPU systems: When can Multi-Process Service (MPS) help? Acceleration of HPC applications on hybrid CPU- systems: When can Multi-Process Service (MPS) help? GTC 2018 March 28, 2018 Olga Pearce (Lawrence Livermore National Laboratory) http://people.llnl.gov/olga

More information

M-ary Search Tree. B-Trees. Solution: B-Trees. B-Tree: Example. B-Tree Properties. B-Trees (4.7 in Weiss)

M-ary Search Tree. B-Trees. Solution: B-Trees. B-Tree: Example. B-Tree Properties. B-Trees (4.7 in Weiss) M-ary Search Tree B-Trees (4.7 in Weiss) Maximum branching factor of M Tree with N values has height = # disk accesses for find: Runtime of find: 1/21/2011 1 1/21/2011 2 Solution: B-Trees specialized M-ary

More information

One of the main selling points of a database engine is the ability to make declarative queries---like SQL---that specify what should be done while

One of the main selling points of a database engine is the ability to make declarative queries---like SQL---that specify what should be done while 1 One of the main selling points of a database engine is the ability to make declarative queries---like SQL---that specify what should be done while leaving the engine to choose the best way of fulfilling

More information

Slide Set 14. for ENCM 339 Fall Steve Norman, PhD, PEng. Electrical & Computer Engineering Schulich School of Engineering University of Calgary

Slide Set 14. for ENCM 339 Fall Steve Norman, PhD, PEng. Electrical & Computer Engineering Schulich School of Engineering University of Calgary Slide Set 14 for ENCM 339 Fall 2016 Steve Norman, PhD, PEng Electrical & Computer Engineering Schulich School of Engineering University of Calgary November 2016 ENCM 339 Fall 2016 Slide Set 14 slide 2/35

More information

Looping and Counting. Lecture 3 Hartmut Kaiser hkaiser/fall_2012/csc1254.html

Looping and Counting. Lecture 3 Hartmut Kaiser  hkaiser/fall_2012/csc1254.html Looping and Counting Lecture 3 Hartmut Kaiser hkaiser@cct.lsu.edu http://www.cct.lsu.edu/ hkaiser/fall_2012/csc1254.html Abstract First we ll discuss types and type safety. Then we will modify the program

More information

CS11 Introduction to C++ Fall Lecture 7

CS11 Introduction to C++ Fall Lecture 7 CS11 Introduction to C++ Fall 2012-2013 Lecture 7 Computer Strategy Game n Want to write a turn-based strategy game for the computer n Need different kinds of units for the game Different capabilities,

More information

Looping and Counting. Lecture 3. Hartmut Kaiser hkaiser/fall_2011/csc1254.html

Looping and Counting. Lecture 3. Hartmut Kaiser  hkaiser/fall_2011/csc1254.html Hartmut Kaiser hkaiser@cct.lsu.edu http://www.cct.lsu.edu/ hkaiser/fall_2011/csc1254.html 2 Abstract First we ll discuss types and type safety. Then we will modify the program we developed last time (Framing

More information

CMSC 341 Lecture 14: Priority Queues, Heaps

CMSC 341 Lecture 14: Priority Queues, Heaps CMSC 341 Lecture 14: Priority Queues, Heaps Prof. John Park Based on slides from previous iterations of this course Today s Topics Priority Queues Abstract Data Type Implementations of Priority Queues:

More information

PREDICTING COMMUNICATION PERFORMANCE

PREDICTING COMMUNICATION PERFORMANCE PREDICTING COMMUNICATION PERFORMANCE Nikhil Jain CASC Seminar, LLNL This work was performed under the auspices of the U.S. Department of Energy by Lawrence Livermore National Laboratory under Contract

More information

ROS-Industrial Basic Developer s Training Class

ROS-Industrial Basic Developer s Training Class ROS-Industrial Basic Developer s Training Class Southwest Research Institute 1 Session 2: ROS Basics Continued Southwest Research Institute 2 Outline Services Actions Launch Files TF 3 Services 4 Services

More information

Trees. CSE 373 Data Structures

Trees. CSE 373 Data Structures Trees CSE 373 Data Structures Readings Reading Chapter 7 Trees 2 Why Do We Need Trees? Lists, Stacks, and Queues are linear relationships Information often contains hierarchical relationships File directories

More information

Cost of Your Programs

Cost of Your Programs Department of Computer Science and Engineering Chinese University of Hong Kong In the class, we have defined the RAM computation model. In turn, this allowed us to define rigorously algorithms and their

More information

Tree Travsersals and BST Iterators

Tree Travsersals and BST Iterators Tree Travsersals and BST Iterators PIC 10B May 25, 2016 PIC 10B Tree Travsersals and BST Iterators May 25, 2016 1 / 17 Overview of Lecture 1 Sorting a BST 2 In-Order Travsersal 3 Pre-Order Traversal 4

More information

CS93SI Handout 04 Spring 2006 Apr Review Answers

CS93SI Handout 04 Spring 2006 Apr Review Answers CS93SI Handout 04 Spring 2006 Apr 6 2006 Review Answers I promised answers to these questions, so here they are. I'll probably readdress the most important of these over and over again, so it's not terribly

More information

CSE 303: Concepts and Tools for Software Development

CSE 303: Concepts and Tools for Software Development CSE 303: Concepts and Tools for Software Development Hal Perkins Autumn 2008 Lecture 24 Introduction to C++ CSE303 Autumn 2008, Lecture 24 1 C++ C++ is an enormous language: All of C Classes and objects

More information

Microsoft Advance Threat Analytics (ATA) at LLNL NLIT Summit 2018

Microsoft Advance Threat Analytics (ATA) at LLNL NLIT Summit 2018 Microsoft Advance Threat Analytics (ATA) at LLNL NLIT Summit 2018 May, 22, 2018 John Wong wong76@llnl.gov Systems & Network Associate This work was performed under the auspices of the U.S. Department of

More information

Concepts of Object Oriented Programming

Concepts of Object Oriented Programming Concepts of Object Oriented Programming Dr. Axel Kohlmeyer Senior Scientific Computing Expert Information and Telecommunication Section The Abdus Salam International Centre for Theoretical Physics http://sites.google.com/site/akohlmey/

More information

19. Dynamic Data Structures II

19. Dynamic Data Structures II Different Memory Layout: Linked List 19. Dynamic Data Structures II Linked Lists, Vectors as Linked Lists No contiguous area of memory and no random access Each element points to its successor Insertion

More information

EReinit: Scalable and Efficient Fault-Tolerance for Bulk-Synchronous MPI Applications

EReinit: Scalable and Efficient Fault-Tolerance for Bulk-Synchronous MPI Applications EReinit: Scalable and Efficient Fault-Tolerance for Bulk-Synchronous MPI Applications Sourav Chakraborty 1, Ignacio Laguna 2, Murali Emani 2, Kathryn Mohror 2, Dhabaleswar K (DK) Panda 1, Martin Schulz

More information

CMSC 341 Leftist Heaps

CMSC 341 Leftist Heaps CMSC 341 Leftist Heaps Based on slides from previous iterations of this course Today s Topics Review of Min Heaps Introduction of Left-ist Heaps Merge Operation Heap Operations Review of Heaps Min Binary

More information

CSCI-1200 Data Structures Spring 2018 Exam 1 Solutions

CSCI-1200 Data Structures Spring 2018 Exam 1 Solutions CSCI-1200 Data Structures Spring 2018 Exam 1 Solutions 1 Parcel Delivery [ / 35] In the following problem you will finish the implementation of a program that is designed to keep track of several delivery

More information

PHY4321 Summary Notes

PHY4321 Summary Notes PHY4321 Summary Notes The next few pages contain some helpful notes that summarize some of the more useful material from the lecture notes. Be aware, though, that this is not a complete set and doesn t

More information

Modern C++ for Computer Vision and Image Processing. Igor Bogoslavskyi

Modern C++ for Computer Vision and Image Processing. Igor Bogoslavskyi Modern C++ for Computer Vision and Image Processing Igor Bogoslavskyi Outline Move semantics Classes Operator overloading Making your class copyable Making your class movable Rule of all or nothing Inheritance

More information

C++\CLI. Jim Fawcett CSE687-OnLine Object Oriented Design Summer 2017

C++\CLI. Jim Fawcett CSE687-OnLine Object Oriented Design Summer 2017 C++\CLI Jim Fawcett CSE687-OnLine Object Oriented Design Summer 2017 Comparison of Object Models Standard C++ Object Model All objects share a rich memory model: Static, stack, and heap Rich object life-time

More information

ECE 2400 Computer Systems Programming Fall 2017 Topic 14: C++ Inheritance

ECE 2400 Computer Systems Programming Fall 2017 Topic 14: C++ Inheritance ECE 200 Computer Systems Programming Fall 2017 Topic 1: C++ Inheritance School of Electrical and Computer Engineering Cornell University revision: 2017-11-06-09-36 1 Introduction to C++ Inheritance 2 1.1.

More information

Intro to OOP Visibility/protection levels and constructors Friend, convert constructor, destructor Operator overloading a<=b a.

Intro to OOP Visibility/protection levels and constructors Friend, convert constructor, destructor Operator overloading a<=b a. Intro to OOP - Object and class - The sequence to define and use a class in a program - How/when to use scope resolution operator - How/when to the dot operator - Should be able to write the prototype

More information

Progress on OpenMP Specifications

Progress on OpenMP Specifications Progress on OpenMP Specifications Wednesday, November 13, 2012 Bronis R. de Supinski Chair, OpenMP Language Committee This work has been authored by Lawrence Livermore National Security, LLC under contract

More information

Priority Queues (Heaps)

Priority Queues (Heaps) Priority Queues (Heaps) 1 Priority Queues Many applications require that we process records with keys in order, but not necessarily in full sorted order. Often we collect a set of items and process the

More information

Comp151. Inheritance: Initialization & Substitution Principle

Comp151. Inheritance: Initialization & Substitution Principle Comp151 Inheritance: Initialization & Substitution Principle Initializing Base Class Objects If class C is derived from class B which is in turn derived from class A, then C will contain data members of

More information

SELF-BALANCING SEARCH TREES. Chapter 11

SELF-BALANCING SEARCH TREES. Chapter 11 SELF-BALANCING SEARCH TREES Chapter 11 Tree Balance and Rotation Section 11.1 Algorithm for Rotation BTNode root = left right = data = 10 BTNode = left right = data = 20 BTNode NULL = left right = NULL

More information

COEN244: Class & function templates

COEN244: Class & function templates COEN244: Class & function templates Aishy Amer Electrical & Computer Engineering Templates Function Templates Class Templates Outline Templates and inheritance Introduction to C++ Standard Template Library

More information

Zymkey App Utils: C++

Zymkey App Utils: C++ Zymkey App Utils: C++ Generated by Doxygen 1.8.8 Tue Apr 3 2018 07:21:52 Contents 1 Intro 1 2 Hierarchical Index 5 2.1 Class Hierarchy............................................ 5 3 Class Index 7 3.1

More information

LECTURE 18 AVL TREES

LECTURE 18 AVL TREES DATA STRUCTURES AND ALGORITHMS LECTURE 18 AVL TREES IMRAN IHSAN ASSISTANT PROFESSOR AIR UNIVERSITY, ISLAMABAD PROTOTYPICAL EXAMPLES These two examples demonstrate how we can correct for imbalances: starting

More information

Modern C++ for Computer Vision and Image Processing. Igor Bogoslavskyi

Modern C++ for Computer Vision and Image Processing. Igor Bogoslavskyi Modern C++ for Computer Vision and Image Processing Igor Bogoslavskyi Outline Static variables and methods Representation of numbers in memory Raw C arrays Non-owning pointers in C++ Classes in memory

More information

Definitions A A tree is an abstract t data type. Topic 17. "A tree may grow a. its leaves will return to its roots." Properties of Trees

Definitions A A tree is an abstract t data type. Topic 17. A tree may grow a. its leaves will return to its roots. Properties of Trees Topic 17 Introduction ti to Trees "A tree may grow a thousand feet tall, but its leaves will return to its roots." -Chinese Proverb Definitions A A tree is an abstract t data t d internal type nodes one

More information

04-24/26 Discussion Notes

04-24/26 Discussion Notes 04-24/26 Discussion Notes PIC 10B Spring 2018 1 When const references should be used and should not be used 1.1 Parameters to constructors We ve already seen code like the following 1 int add10 ( int x

More information

Exceptions, Case Study-Exception handling in C++.

Exceptions, Case Study-Exception handling in C++. PART III: Structuring of Computations- Structuring the computation, Expressions and statements, Conditional execution and iteration, Routines, Style issues: side effects and aliasing, Exceptions, Case

More information

Automated Characterization of Parallel Application Communication Patterns

Automated Characterization of Parallel Application Communication Patterns Automated Characterization of Parallel Application Communication Patterns Philip C. Roth Jeremy S. Meredith Jeffrey S. Vetter Oak Ridge National Laboratory 17 June 2015 ORNL is managed by UT-Battelle for

More information

Discussion 2C Notes (Week 8, February 25) TA: Brian Choi Section Webpage:

Discussion 2C Notes (Week 8, February 25) TA: Brian Choi Section Webpage: Discussion 2C Notes (Week 8, February 25) TA: Brian Choi (schoi@cs.ucla.edu) Section Webpage: http://www.cs.ucla.edu/~schoi/cs32 Trees Definitions Yet another data structure -- trees. Just like a linked

More information

ECP Alpine: Algorithms and Infrastructure for In Situ Visualization and Analysis

ECP Alpine: Algorithms and Infrastructure for In Situ Visualization and Analysis ECP Alpine: Algorithms and Infrastructure for In Situ Visualization and Analysis Presented By: Matt Larsen LLNL-PRES-731545 This work was performed under the auspices of the U.S. Department of Energy by

More information

the pointer range [first, last) into the tree

the pointer range [first, last) into the tree 1 #ifndef BINARY_SEARCH_TREE_CLASS 2 #define BINARY_SEARCH_TREE_CLASS 3 4 #ifndef NULL 5 #include 6 #endif // NULL 7 8 #include // for setw() 9 #include // for format conversion

More information

EL2310 Scientific Programming

EL2310 Scientific Programming Lecture 15: Inheritance and Polymorphism, STL (pronobis@kth.se) Overview Overview Lecture 15: Inheritance and Polymorphism, STL Wrap Up Additional Bits about Classes Overloading Inheritance Polymorphism

More information

Traversing Trees with Iterators

Traversing Trees with Iterators Steven J. Zeil June 25, 2013 Contents 1 Iterating over Trees 4 1.1 begin()..................................... 6 1.2 operator++................................... 7 2 Iterators using Parent Pointers 11

More information

Traversing Trees with Iterators

Traversing Trees with Iterators Steven J. Zeil June 25, 2013 Contents 1 Iterating over Trees 3 1.1 begin()................................................................ 5 1.2 operator++..............................................................

More information

Lecture 32. No computer use today. Reminders: Homework 11 is due today. Project 6 is due next Friday. Questions?

Lecture 32. No computer use today. Reminders: Homework 11 is due today. Project 6 is due next Friday. Questions? Lecture 32 No computer use today. Reminders: Homework 11 is due today. Project 6 is due next Friday. Questions? Friday, April 1 CS 215 Fundamentals of Programming II - Lecture 32 1 Outline Introduction

More information

Analysis report examination with CUBE. Monika Lücke German Research School for Simulation Sciences

Analysis report examination with CUBE. Monika Lücke German Research School for Simulation Sciences Analysis report examination with CUBE Monika Lücke German Research School for Simulation Sciences CUBE Parallel program analysis report exploration tools Libraries for XML report reading & writing Algebra

More information

Programming with OpenGL Part 3: Shaders. Ed Angel Professor of Emeritus of Computer Science University of New Mexico

Programming with OpenGL Part 3: Shaders. Ed Angel Professor of Emeritus of Computer Science University of New Mexico Programming with OpenGL Part 3: Shaders Ed Angel Professor of Emeritus of Computer Science University of New Mexico 1 Objectives Simple Shaders - Vertex shader - Fragment shaders Programming shaders with

More information

Binary Trees

Binary Trees Binary Trees 4-7-2005 Opening Discussion What did we talk about last class? Do you have any code to show? Do you have any questions about the assignment? What is a Tree? You are all familiar with what

More information

CS 376b Computer Vision

CS 376b Computer Vision CS 376b Computer Vision 09 / 25 / 2014 Instructor: Michael Eckmann Today s Topics Questions? / Comments? Enhancing images / masks Cross correlation Convolution C++ Cross-correlation Cross-correlation involves

More information

Chapter 10. Implementing Subprograms

Chapter 10. Implementing Subprograms Chapter 10 Implementing Subprograms Chapter 10 Topics The General Semantics of Calls and Returns Implementing Simple Subprograms Implementing Subprograms with Stack-Dynamic Local Variables Nested Subprograms

More information

20. Inheritance and Polymorphism

20. Inheritance and Polymorphism (Expression) Trees 20. Inheritance and Polymorphism Expression Trees, Inheritance, Code-Reuse, Virtual Functions, Polymorphism, Concepts of Object Oriented Programming bend fork 3 -(3-(4-5))*(3+4*5)/6

More information

Example Final Questions Instructions

Example Final Questions Instructions Example Final Questions Instructions This exam paper contains a set of sample final exam questions. It is for practice purposes only. You ll most likely need longer than three hours to answer all the questions.

More information

ROSE-CIRM Detecting C-Style Errors in UPC Code

ROSE-CIRM Detecting C-Style Errors in UPC Code ROSE-CIRM Detecting C-Style Errors in UPC Code Peter Pirkelbauer 1 Chunhuah Liao 1 Thomas Panas 2 Daniel Quinlan 1 1 2 Microsoft Parallel Data Warehouse This work was funded by the Department of Defense

More information

B-Trees. nodes with many children a type node a class for B-trees. an elaborate example the insertion algorithm removing elements

B-Trees. nodes with many children a type node a class for B-trees. an elaborate example the insertion algorithm removing elements B-Trees 1 B-Trees nodes with many children a type node a class for B-trees 2 manipulating a B-tree an elaborate example the insertion algorithm removing elements MCS 360 Lecture 35 Introduction to Data

More information

Programming with Haiku

Programming with Haiku Programming with Haiku Lesson 2 Written by DarkWyrm All material 2010 DarkWyrm In our first lesson, we learned about how to generalize type handling using templates and some of the incredibly flexible

More information