Description

Book Synopsis
Arguably the strongest addition to numerical finance of the past decade, Algorithmic Adjoint Differentiation (AAD) is the technology implemented in modern financial software to produce thousands of accurate risk sensitivities, within seconds, on light hardware.

AAD recently became a centerpiece of modern financial systems and a key skill for all quantitative analysts, developers, risk professionals or anyone involved with derivatives. It is increasingly taught in Masters and PhD programs in finance.

Danske Bank''s wide scale implementation of AAD in its production and regulatory systems won the In-House System of the Year 2015 Risk award. The Modern Computational Finance books, written by three of the very people who designed Danske Bank''s systems, offer a unique insight into the modern implementation of financial models. The volumes combine financial modelling, mathematics and programming to resolve real life financial problems and produce effective derivatives

Table of Contents

Modern Computational Finance xi

Preface by Leif Andersen xv

Acknowledgments xix

Introduction xxi

About the Companion C++ Code xxv

PART I Modern Parallel Programming 1

Introduction 3

CHAPTER 1 Effective C++ 17

CHAPTER 2 Modern C++ 25

2.1 Lambda expressions 25

2.2 Functional programming in C++ 28

2.3 Move semantics 34

2.4 Smart pointers 41

CHAPTER 3 Parallel C++ 47

3.1 Multi-threaded Hello World 49

3.2 Thread management 50

3.3 Data sharing 55

3.4 Thread local storage 56

3.5 False sharing 57

3.6 Race conditions and data races 62

3.7 Locks 64

3.8 Spinlocks 66

3.9 Deadlocks 67

3.10 RAII locks 68

3.11 Lock-free concurrent design 70

3.12 Introduction to concurrent data structures 72

3.13 Condition variables 74

3.14 Advanced synchronization 80

3.15 Lazy initialization 83

3.16 Atomic types 86

3.17 Task management 89

3.18 Thread pools 96

3.19 Using the thread pool 108

3.20 Debugging and optimizing parallel programs 113

PART II Parallel Simulation 123

Introduction 125

CHAPTER 4 Asset Pricing 127

4.1 Financial products 127

4.2 The Arbitrage Pricing Theory 140

4.3 Financial models 151

CHAPTER 5 Monte-Carlo 185

5.1 The Monte-Carlo algorithm 185

5.2 Simulation of dynamic models 192

5.3 Random numbers 200

5.4 Better random numbers 202

CHAPTER 6Serial Implementation 213

6.1 The template simulation algorithm 213

6.2 Random number generators 223

6.3 Concrete products 230

6.4 Concrete models 245

6.5 User interface 263

6.6 Results 268

CHAPTER 7 Parallel Implementation 271

7.1 Parallel code and skip ahead 271

7.2 Skip ahead with mrg32k3a 276

7.3 Skip ahead with Sobol 282

7.4 Results 283

PART III Constant Time Differentiation 285

Introduction 287

CHAPTER 8 Manual Adjoint Differentiation 295

8.1 Introduction to Adjoint Differentiation 295

8.2 Adjoint Differentiation by hand 308

8.3 Applications in machine learning and finance 315

CHAPTER 9 Algorithmic Adjoint Differentiation 321

9.1 Calculation graphs 322

9.2 Building and applying DAGs 328

9.3 Adjoint mathematics 340

9.4 Adjoint accumulation and DAG traversal 344

9.5 Working with tapes 349

CHAPTER 10 Effective AAD and Memory Management 357

10.1 The Node class 359

10.2 Memory management and the Tape class 362

10.3 The Number class 379

10.4 Basic instrumentation 398

CHAPTER 11 Discussion and Limitations 401

11.1 Inputs and outputs 401

11.2 Higher-order derivatives 402

11.3 Control flow 402

11.4 Memory 403

CHAPTER 12 Differentiation of the Simulation Library 407

12.1 Active code 407

12.2 Serial code 409

12.3 User interface 417

12.4 Serial results 424

12.5 Parallel code 426

12.6 Parallel results 433

CHAPTER 13 Check-Pointing and Calibration 439

13.1 Check-pointing 439

13.2 Explicit calibration 448

13.3 Implicit calibration 475

CHAPTER 14 Multiple Differentiation in Almost Constant Time 483

14.1 Multidimensional differentiation 483

14.2 Traditional Multidimensional AAD 484

14.3 Multidimensional adjoints 485

14.4 AAD library support 487

14.5 Instrumentation of simulation algorithms 494

14.6 Results 499

CHAPTER 15 Acceleration with Expression Templates 503

15.1 Expression nodes 504

15.2 Expression templates 507

15.3 Expression templated AAD code 524

Debugging AAD Instrumentation 541

Conclusion 547

References 549

Index 555

Modern Computational Finance

    Product form

    £67.50

    Includes FREE delivery

    RRP £75.00 – you save £7.50 (10%)

    Order before 4pm today for delivery by Mon 22 Jun 2026.

    A Hardback by Antoine Savine, Leif Andersen

    2 in stock

      Trusted by thousands of customers. See 2,385+ Customer Reviews

      View other formats and editions of Modern Computational Finance by Antoine Savine

      Publisher: John Wiley & Sons Inc
      Publication Date: 07/12/2018
      ISBN13: 9781119539452, 978-1119539452
      ISBN10: 1119539455

      Description

      Book Synopsis
      Arguably the strongest addition to numerical finance of the past decade, Algorithmic Adjoint Differentiation (AAD) is the technology implemented in modern financial software to produce thousands of accurate risk sensitivities, within seconds, on light hardware.

      AAD recently became a centerpiece of modern financial systems and a key skill for all quantitative analysts, developers, risk professionals or anyone involved with derivatives. It is increasingly taught in Masters and PhD programs in finance.

      Danske Bank''s wide scale implementation of AAD in its production and regulatory systems won the In-House System of the Year 2015 Risk award. The Modern Computational Finance books, written by three of the very people who designed Danske Bank''s systems, offer a unique insight into the modern implementation of financial models. The volumes combine financial modelling, mathematics and programming to resolve real life financial problems and produce effective derivatives

      Table of Contents

      Modern Computational Finance xi

      Preface by Leif Andersen xv

      Acknowledgments xix

      Introduction xxi

      About the Companion C++ Code xxv

      PART I Modern Parallel Programming 1

      Introduction 3

      CHAPTER 1 Effective C++ 17

      CHAPTER 2 Modern C++ 25

      2.1 Lambda expressions 25

      2.2 Functional programming in C++ 28

      2.3 Move semantics 34

      2.4 Smart pointers 41

      CHAPTER 3 Parallel C++ 47

      3.1 Multi-threaded Hello World 49

      3.2 Thread management 50

      3.3 Data sharing 55

      3.4 Thread local storage 56

      3.5 False sharing 57

      3.6 Race conditions and data races 62

      3.7 Locks 64

      3.8 Spinlocks 66

      3.9 Deadlocks 67

      3.10 RAII locks 68

      3.11 Lock-free concurrent design 70

      3.12 Introduction to concurrent data structures 72

      3.13 Condition variables 74

      3.14 Advanced synchronization 80

      3.15 Lazy initialization 83

      3.16 Atomic types 86

      3.17 Task management 89

      3.18 Thread pools 96

      3.19 Using the thread pool 108

      3.20 Debugging and optimizing parallel programs 113

      PART II Parallel Simulation 123

      Introduction 125

      CHAPTER 4 Asset Pricing 127

      4.1 Financial products 127

      4.2 The Arbitrage Pricing Theory 140

      4.3 Financial models 151

      CHAPTER 5 Monte-Carlo 185

      5.1 The Monte-Carlo algorithm 185

      5.2 Simulation of dynamic models 192

      5.3 Random numbers 200

      5.4 Better random numbers 202

      CHAPTER 6Serial Implementation 213

      6.1 The template simulation algorithm 213

      6.2 Random number generators 223

      6.3 Concrete products 230

      6.4 Concrete models 245

      6.5 User interface 263

      6.6 Results 268

      CHAPTER 7 Parallel Implementation 271

      7.1 Parallel code and skip ahead 271

      7.2 Skip ahead with mrg32k3a 276

      7.3 Skip ahead with Sobol 282

      7.4 Results 283

      PART III Constant Time Differentiation 285

      Introduction 287

      CHAPTER 8 Manual Adjoint Differentiation 295

      8.1 Introduction to Adjoint Differentiation 295

      8.2 Adjoint Differentiation by hand 308

      8.3 Applications in machine learning and finance 315

      CHAPTER 9 Algorithmic Adjoint Differentiation 321

      9.1 Calculation graphs 322

      9.2 Building and applying DAGs 328

      9.3 Adjoint mathematics 340

      9.4 Adjoint accumulation and DAG traversal 344

      9.5 Working with tapes 349

      CHAPTER 10 Effective AAD and Memory Management 357

      10.1 The Node class 359

      10.2 Memory management and the Tape class 362

      10.3 The Number class 379

      10.4 Basic instrumentation 398

      CHAPTER 11 Discussion and Limitations 401

      11.1 Inputs and outputs 401

      11.2 Higher-order derivatives 402

      11.3 Control flow 402

      11.4 Memory 403

      CHAPTER 12 Differentiation of the Simulation Library 407

      12.1 Active code 407

      12.2 Serial code 409

      12.3 User interface 417

      12.4 Serial results 424

      12.5 Parallel code 426

      12.6 Parallel results 433

      CHAPTER 13 Check-Pointing and Calibration 439

      13.1 Check-pointing 439

      13.2 Explicit calibration 448

      13.3 Implicit calibration 475

      CHAPTER 14 Multiple Differentiation in Almost Constant Time 483

      14.1 Multidimensional differentiation 483

      14.2 Traditional Multidimensional AAD 484

      14.3 Multidimensional adjoints 485

      14.4 AAD library support 487

      14.5 Instrumentation of simulation algorithms 494

      14.6 Results 499

      CHAPTER 15 Acceleration with Expression Templates 503

      15.1 Expression nodes 504

      15.2 Expression templates 507

      15.3 Expression templated AAD code 524

      Debugging AAD Instrumentation 541

      Conclusion 547

      References 549

      Index 555

      Recently viewed products

      © 2026 Book Curl

        • American Express
        • Apple Pay
        • Diners Club
        • Discover
        • Google Pay
        • Maestro
        • Mastercard
        • PayPal
        • Shop Pay
        • Union Pay
        • Visa

        Login

        Forgot your password?

        Don't have an account yet?
        Create account