100% found this document useful (3 votes)
39 views52 pages

Application-Specific Arithmetic: Computing Just Right For The Reconfigurable Computer and The Dark Silicon Era 2024th Edition de Dinechin

Computer

Uploaded by

auesqetusa
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (3 votes)
39 views52 pages

Application-Specific Arithmetic: Computing Just Right For The Reconfigurable Computer and The Dark Silicon Era 2024th Edition de Dinechin

Computer

Uploaded by

auesqetusa
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 52

Download the full version of the textbook now at textbookfull.

com

Application-Specific Arithmetic: Computing


Just Right for the Reconfigurable Computer
and the Dark Silicon Era 2024th Edition De
Dinechin
https://textbookfull.com/product/application-
specific-arithmetic-computing-just-right-for-the-
reconfigurable-computer-and-the-dark-silicon-
era-2024th-edition-de-dinechin/

Explore and download more textbook at https://textbookfull.com


Recommended digital products (PDF, EPUB, MOBI) that
you can download immediately if you are interested.

The Dark Side of Silicon Energy Efficient Computing in the


Dark Silicon Era 1st Edition Amir M. Rahmani

https://textbookfull.com/product/the-dark-side-of-silicon-energy-
efficient-computing-in-the-dark-silicon-era-1st-edition-amir-m-
rahmani/
textbookfull.com

Intelligent Computing Theories and Application De-Shuang


Huang

https://textbookfull.com/product/intelligent-computing-theories-and-
application-de-shuang-huang/

textbookfull.com

Just Right 1st Edition Catherine Lievens [Lievens

https://textbookfull.com/product/just-right-1st-edition-catherine-
lievens-lievens/

textbookfull.com

D3 for the Impatient Interactive Graphics for Programmers


and Scientists Philipp K. Janert

https://textbookfull.com/product/d3-for-the-impatient-interactive-
graphics-for-programmers-and-scientists-philipp-k-janert/

textbookfull.com
Premodern Rulers and Postmodern Viewers : Gender, Sex, and
Power in Popular Culture 1st Edition Janice North

https://textbookfull.com/product/premodern-rulers-and-postmodern-
viewers-gender-sex-and-power-in-popular-culture-1st-edition-janice-
north/
textbookfull.com

Watching Over Me Crime After Crime Book 1 1st Edition M K


Farrar

https://textbookfull.com/product/watching-over-me-crime-after-crime-
book-1-1st-edition-m-k-farrar/

textbookfull.com

Fault Lines A History of the United States Since 1974


Kevin M. Kruse

https://textbookfull.com/product/fault-lines-a-history-of-the-united-
states-since-1974-kevin-m-kruse/

textbookfull.com

Ethical Exploration in a Multifaith Society 1st Edition


Catherine Shelley (Auth.)

https://textbookfull.com/product/ethical-exploration-in-a-multifaith-
society-1st-edition-catherine-shelley-auth/

textbookfull.com

Business Essentials, Ninth Canadian Edition Ronald J.


Ebert

https://textbookfull.com/product/business-essentials-ninth-canadian-
edition-ronald-j-ebert/

textbookfull.com
Active Geophysical Monitoring 2nd Edition Junzo Kasahara
(Editor)

https://textbookfull.com/product/active-geophysical-monitoring-2nd-
edition-junzo-kasahara-editor/

textbookfull.com
Florent de Dinechin
Martin Kumm

Application-Specific
Arithmetic
Computing Just Right
for the Reconfigurable Computer
and the Dark Silicon Era
Application-Specific Arithmetic
Florent de Dinechin • Martin Kumm

Application-Specific
Arithmetic
Computing Just Right
for the Reconfigurable Computer
and the Dark Silicon Era

123
Florent de Dinechin Martin Kumm
CITI laboratory, INSA-Lyon Fulda University of Applied Sciences
Villeurbanne, France Fulda, Germany

ISBN 978-3-031-42807-4 ISBN 978-3-031-42808-1 (eBook)


https://doi.org/10.1007/978-3-031-42808-1

© Springer Nature Switzerland AG 2024


This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or
part of the material is concerned, specifically the rights of translation, reprinting, reuse of illus-
trations, recitation, broadcasting, reproduction on microfilms or in any other physical way, and
transmission or information storage and retrieval, electronic adaptation, computer software, or
by similar or dissimilar methodology now known or hereafter developed.
The use of general descriptive names, registered names, trademarks, service marks, etc. in this
publication does not imply, even in the absence of a specific statement, that such names are
exempt from the relevant protective laws and regulations and therefore free for general use.
The publisher, the authors, and the editors are safe to assume that the advice and information
in this book are believed to be true and accurate at the date of publication. Neither the pub-
lisher nor the authors or the editors give a warranty, expressed or implied, with respect to the
material contained herein or for any errors or omissions that may have been made. The pub-
lisher remains neutral with regard to jurisdictional claims in published maps and institutional
affiliations.

This Springer imprint is published by the registered company Springer Nature Switzerland AG
The registered company address is: Gewerbestrasse 11, 6330 Cham, Switzerland

Paper in this product is recyclable.


Preface

Computer arithmetic is the art of representing and manipulating numbers in


a computer. This book is about hardware arithmetic, the art of building those
elementary computing operators that sit at the core of a computer, and give
it its name. A programmer who uses the symbols .+ or ./ in a program proba-
bly knows that it will trigger hardware arithmetic operators, but many more
operators are hidden from view. Talking through a mobile phone, paying
with a credit card, driving a car, looking at a digital watch, all these activities
rely on myriads of hardware arithmetic operators embedded in the artifacts
of the digital age.
It is therefore not a surprise that computer arithmetic is among the first
subjects taught in electrical engineering or computer science. Students learn
very early how to build a binary adder, sometimes right after the basic
gates (NOT, AND, OR, and XOR) have been introduced. Most students also
quickly forget it, and only a select few will proceed to discover the more
arcane aspects of hardware arithmetic, for instance the design of dividers,
square root units, or trigonometric operators. This book is for them.
There are already many good books about computer arithmetic, and there
are excellent courses in many universities. They perfectly cover the hard-

ware implementation of .+, .−, .×, ./, . , the five basic operations that have
made the microprocessor so universal and so versatile in the twentieth cen-
tury. This is mainstream hardware arithmetic, and these operators are here
to stay. However, they are increasingly being complemented by a wild pro-
liferation of new operators, diverse in shape and size, but sharing one com-
mon characteristic: they no longer need to be versatile, they no longer need
to be universal, they need to do one thing for one application, and do it well
(faster, or cheaper, or more accurately, or with less energy than the main-
stream arithmetic operators). Multipliers that only multiply by a constant
17π
such as .sin( 1024 ) or .log(2); fancy mathematical functions such as sigmoid,
inverse cumulative distributions, or softmax; operators for low-precision
data that would be catastrophic for general-purpose computing but seem
perfectly suited to signal processing or machine learning: these are but a
few examples of what researchers and application-specific circuit design-
ers have been exploring in the past two decades. This book is about these
application-specific operators.
v
vi Preface

As each application comes with its specific computing needs, there is an


infinite number of application-specific operators. We therefore had to make
a selection, and we apologize in advance to our readers if they do not find
in these pages exactly the operator they need. However, the purpose of this
book is not only to describe operators: it is also to describe methods, tech-
niques that can be used to build all the operators that we do not describe.
These methods were not developed for this book: they are the fruit of more
than a decade of experiments and of development by the authors in the
FloPoCo software project. FloPoCo is an open-source program that gen-
erates application-specific operators. Its operators have, for the most part,
been published in various articles. The core techniques have not, or only in
a rudimentary way. This is the main reason why we wanted to write this
textbook. It fills a gap between existing textbooks and the state of the art.
The twenty-first century has also seen the maturation of the field pro-
grammable gate array (FPGA), and the emergence of reconfigurable com-
puting which complements traditional microprocessors with FPGA-based
accelerators. Some companies are specialized in this kind of acceleration,
and some application domains are increasingly relying on it. When de-
ploying an application on an FPGA, only the operators needed by this
application need to be included: FPGA arithmetics, by definition, should
be application-specific. This book is therefore especially relevant to FPGA-
based computing, and it includes many FPGA-specific arithmetic
techniques.
We hope that this book will be useful to students, to anybody interested
in the design of computing circuits, to practitioners in VLSI design, and to
engineers and researchers working with FPGAs. We hope it will save them
some frustrating tinkering, and guide them on the path to the high-quality
application-specific operators their projects deserve. We hope that they will
find this book useful to their application domain, whatever it may be.1 And
we look forward to their feedback.

Lyon, France Florent de Dinechin


Fulda, Germany Martin Kumm

1 ... with one huge exception: for lack of time we had to leave finite-field arithmetic and
cryptography out of this book, and we deeply regret it.
Preface vii

Acknowledgments

Many people have contributed to making this book possible. Some have
been our mentors, some have been our colleagues, some have been our stu-
dents. Some began as students, then became colleagues. Many have become
close friends. For these reasons and for many others, the authors would like
to thank:
Levent Aksoy, Andrea Bocco, David Boland, Sylvie Boldo, Marthe
Bonamy, Andreas Böttcher, Philip Brisk, Javier Bruguera, Nicolas Brunie,
Chip-Hong Chang, Peter Cheung, Ray Cheung, Sylvain Chevillard, Maxime
Christ, Caroline Collange, Marius Cornea, Octavian Creţ, Marc Daumas,
David Defour, Steven Derrien, Oregane Desrentes, Jérémie Detrey, Laurent-
Stéphane Didier, Benoît Dupont de Dinechin, Yves Durand, Miloš Ercego-
vac, Alexey Ershov, Diana Fanghänel, Julian Faraone, Mathias Faust, Fab-
rizio Ferrandi, Nicolai Fiege, Silviu Filip, Luc Forget, Giulio Gambardella,
Rémi Garcia, Mario Garrido, Alexandre Goldsztejn, Bernard Goossens, Jean-
Marie Gorce, Oscar Gustafsson, Tobias Habermann, Martin Hardieck,
Matei Iştoan, Paolo Ienne, Claude-Pierre Jeannerod, Håkan Johansson,
Mioara Joldeş, Petter Källström, Johannes Kappauf, Nachiket Kapre, Cris-
tian Klein, Marco Kleinlein, Harald Klingbeil, Andreas Koch, Dirk Koch,
Jonas Kühle, Akash Kumar, Martin Langhammer, Philippe Langlois,
Christoph Lauter, Vincent Lefèvre, Philip H. W. Leong, Nicolas Louvet,
Wayne Luk, David Lutz, Sergey Maidanov, Peter Markstein, Steve McK-
eever, Michael Mecik, Guillaume Melquiond, Uwe Meyer-Baese, Marc Mez-
zarobba, Konrad Möller, Lionel Morel, Duncan Moss, Jean-Michel Muller,
Ettore Napoli, Andrey Naraikin, Stuart Oberman, Julian Oppermann, Bog-
dan Pasca, Jakoba Petri-König, Thomas Preußer, Patrice Quinton, Sanjay Ra-
jopadhye, Melanie Reuter-Oppermann, Nathalie Revol, Guillaume Salagnac,
Shahab Sanjari, Tapio Saramäki, Kentaro Sano, Olivier Sentieys, Nabeel Shi-
razi, Patrick Sittel, Hayden So, Christine Solnon, Lukas Sommer, Antonio
Strollo, Ping Tak Peter Tang, David Thomas, Arnaud Tisserand, Stephen
Tridgell, Yohann Uguen, Álvaro Vázquez, Gilles Villard, Anastasia Volkova,
Lukas Weber, Markus Weinhardt, John Wickerson, Paul Zimmermann, Peter
Zipf, and many others.
It is a bit frightening to have found recollections of drinking beer while
talking science with so many people.

The authors also want to express their gratitude to all the FloPoCo de-
velopers (with extra apologies to those whose work had to be left out of the
present book):
Hatam Abdoli, Sebastian Banescu, Louis Besème, Andreas Böttcher, Nico-
las Bonfante, Nicolas Brunie, Romain Bouarah, Victor Capelle, Jiajie Chen,
Maxime Christ, Caroline Collange, Quentin Corradi, Orégane Desrentes,
Jérémie Detrey, Antonin Dudermel, Fabrizio Ferrandi, Nicolai Fiege, Luc
Forget, Martin Hardieck, Valentin Huguet, Kinga Illyes, Matei Iştoan,
viii Preface

Mioara Joldeş, Johannes Kappauf, Cristian Klein, Marco Kleinlein, Kilian


Klug, Jonas Kühle, Keanu Kullmann, Louis Ledoux, Jean Marchal, Antoine
Martinet, Konrad Möller, Raul Murillo, Annika Oeste, Bogdan Pasca, Bog-
dan Popa, Xavier Pujol, Guillaume Sergent, Viktor Schmidt, David Thomas,
Radu Tudoran, Alvaro Vasquez, Anastasia Volkova.

Finally, special thanks to all the people who have spent some of their time
to review part of this book:
Hatam Abdoli, Noah Bertholon, Andreas Böttcher, Romain Bouarah,
Maxime Christ, Quentin Corradi, Orégane Desrentes, Christophe de
Dinechin, Silviu Filip, Luc Forget, Robin Green, Tobias Habermann, Agathe
Herrou, Michael Mecik, Jean-Michel Muller, Raymond Nijssen, Pierre-Yves
Piriou, and Tanguy Risset.
Contents

1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1 Computer Arithmetic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Trends in Digital Technology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2.1 The Dark Silicon Era . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.2 The Dawn of the Reconfigurable Computer . . . . . . . . . 4
1.3 Beyond Traditional Arithmetic Operators . . . . . . . . . . . . . . . . . . 7
1.4 Opportunities of Application-Specific Arithmetic . . . . . . . . . . . 8
1.4.1 Operator Specialization . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.4.2 Operator Fusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.4.3 Function Approximation . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.4.4 Resource Sharing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.4.5 Target-Specific Optimizations . . . . . . . . . . . . . . . . . . . . . . 15
1.5 General Design Principles for Application-Specific
Arithmetic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.5.1 Parameterize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.5.2 Compute Just Right (Last-Bit Accuracy) . . . . . . . . . . . . 17
1.5.3 Expose the Design Space . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.5.4 Do Not Write Operators, Write Generators . . . . . . . . . . 19
1.5.5 Generate the Test Bench Along with the Operator . . . 20
1.6 Organization of This Book . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.7 Support Software: The FloPoCo Project . . . . . . . . . . . . . . . . . . . . . 22
1.8 Other Books on Computer Arithmetic . . . . . . . . . . . . . . . . . . . . . . 22
1.8.1 General Computer Arithmetic . . . . . . . . . . . . . . . . . . . . . 23
1.8.2 Arithmetic for FPGAs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.8.3 Other Specialized Books . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
1.8.4 Approximate Computing . . . . . . . . . . . . . . . . . . . . . . . . . . 25
1.9 Notations Used in This Book . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

2 Number Formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.1 Representing Integers in Binary . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.1.1 Binary Representation of Positive Integers . . . . . . . . . . 34

ix
x Contents

2.1.2 Signed Integers in Two’s Complement


Representation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.1.3 Sign-Magnitude Representation . . . . . . . . . . . . . . . . . . . . 37
2.1.4 Conversion Between Sign-Magnitude and Two’s
Complement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.2 Fixed-Point Binary Representations . . . . . . . . . . . . . . . . . . . . . . . . 38
2.2.1 Unsigned Fixed-Point Binary Representation . . . . . . . . 38
2.2.2 Two’s Complement Fixed-Point Binary
Representation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2.2.3 Conversion to a Wider Format: Sign Extension . . . . . . 42
2.2.4 Conversion to a Narrower Format: Overflow and
Rounding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
2.2.5 Alternative Notations for Fixed-Point Formats . . . . . . 43
2.3 High-Radix Binary Representation . . . . . . . . . . . . . . . . . . . . . . . . . 44
2.4 Redundant Positional Number Systems . . . . . . . . . . . . . . . . . . . . 46
2.5 Binary Floating-Point Formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.5.1 The IEEE 754 Formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.5.2 Emerging Non-standard Formats for Machine
Learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
2.5.3 A Simplified Floating-Point Format . . . . . . . . . . . . . . . . 54
2.5.4 Respective Motivations of IEEEfloat and Nfloat . . . . . 55
2.5.5 Non-binary Floating-Point Formats . . . . . . . . . . . . . . . . 56
2.6 Logarithmic Number Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
2.6.1 An Example LNS Format . . . . . . . . . . . . . . . . . . . . . . . . . . 57
2.6.2 LNS Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
2.6.3 LNS in Arbitrary Base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

3 Computing Just Right: Accuracy Specification and Error


Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
3.1 Accuracy of an Operator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
3.1.1 Absolute and Relative Error . . . . . . . . . . . . . . . . . . . . . . . 67
3.1.2 Unit in the Last Place (ulp) . . . . . . . . . . . . . . . . . . . . . . . . 67
3.1.3 Rounding to the Nearest . . . . . . . . . . . . . . . . . . . . . . . . . . 68
3.1.4 Truncation Versus Rounding to the Nearest . . . . . . . . . 70
3.1.5 Rounding and Overflow Specification in
Fixed-Point Libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
3.1.6 Half-Unit Biased (HUB) Format . . . . . . . . . . . . . . . . . . . 71
3.1.7 Rounding to the Nearest When an Approximation
Is Involved . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
3.1.8 Faithful Operators and Last-Bit Accuracy . . . . . . . . . . . 76
3.1.9 Last-Bit Accuracy Versus Rounding to the Nearest . . . 77
3.2 Using the Format to Specify the Accuracy . . . . . . . . . . . . . . . . . . . 77
3.3 Designing Accurate Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
3.3.1 Parametric Designs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Visit https://textbookfull.com
now to explore a rich
collection of eBooks, textbook
and enjoy exciting offers!
Contents xi

3.3.2 Error Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80


3.3.3 Error Budget and Design-Space Exploration . . . . . . . . 83
3.4 Now Go Divide and Conquer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

4 Field Programmable Gate Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87


4.1 Basic Logic Elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
4.1.1 Look-Up Tables and Flip-Flops . . . . . . . . . . . . . . . . . . . . 89
4.1.2 Basic Logic Elements of AMD FPGAs . . . . . . . . . . . . . . 91
4.1.3 Basic Logic Elements of Intel FPGAs . . . . . . . . . . . . . . . 93
4.1.4 Comparison of BLEs in Commercial FPGAs . . . . . . . . . 94
4.2 DSP Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
4.3 Memory Elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
4.3.1 Distributed Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
4.3.2 Shift Register LUTs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
4.3.3 Block Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99

Part I Revisiting Classic Arithmetic


5 Fixed-Point Addition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
5.1 Fixed-Point Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
5.1.1 Unsigned Integer Addition . . . . . . . . . . . . . . . . . . . . . . . . 104
5.1.2 Signed Integer Addition . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
5.1.3 Fixed-Point Addition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
5.2 Addition Basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
5.2.1 The Full Adder and Half Adder Cells . . . . . . . . . . . . . . 106
5.2.2 Ripple-Carry Addition . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
5.2.3 Addition of Signed Numbers in Two’s
Complement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
5.2.4 Basic Subtraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
5.2.5 Reconfigurable Adder/Subtractor . . . . . . . . . . . . . . . . . . 110
5.2.6 Carry-Save Addition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
5.3 Fast Adders for VLSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
5.3.1 Switched Ripple-Carry Adder . . . . . . . . . . . . . . . . . . . . . 113
5.3.2 Carry-Select Adder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
5.3.3 Recursive Carry-Select Adder (Conditional-Sum
Adder) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
5.3.4 Carry-Lookahead Adder . . . . . . . . . . . . . . . . . . . . . . . . . . 116
5.3.5 Recursive Carry-Lookahead Adder . . . . . . . . . . . . . . . . . 117
5.3.6 Parallel Prefix Adders . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
5.3.7 Compound Fast Adder . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
5.3.8 Fast Absolute Difference Operator . . . . . . . . . . . . . . . . . 124
5.3.9 Fast Compound Triple Sum . . . . . . . . . . . . . . . . . . . . . . . . 124
5.4 Adders on FPGAs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
xii Contents

5.4.1 Addition Support on AMD FPGAs . . . . . . . . . . . . . . . . . 126


5.4.2 Addition Support on Intel FPGAs . . . . . . . . . . . . . . . . . . 128
5.4.3 Merging Additional Functionality in an Adder . . . . . . 128
5.4.4 Ternary Adders on FPGAs . . . . . . . . . . . . . . . . . . . . . . . . . 129
5.4.5 Reconfigurable Adder/Subtractor . . . . . . . . . . . . . . . . . . 133
5.5 Fast Adders on FPGAs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
5.5.1 Pipelined Adders . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
5.5.2 Fast Combinatorial Adders . . . . . . . . . . . . . . . . . . . . . . . . 137
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140

6 Fixed-Point Comparison . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145


6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
6.1.1 Fixed-Point Considerations . . . . . . . . . . . . . . . . . . . . . . . . 146
6.1.2 Area and Delay Considerations . . . . . . . . . . . . . . . . . . . . 146
6.2 Basic Binary Tree Comparison . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
6.3 FPGA-Specific Implementations . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
6.3.1 Exploiting Fast Carry Logic . . . . . . . . . . . . . . . . . . . . . . . . 148
6.3.2 Two-Level Tree of Fast Carry Logic . . . . . . . . . . . . . . . . . 148
6.3.3 Comparing to a Constant . . . . . . . . . . . . . . . . . . . . . . . . . 149
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150

7 Sums of Weighted Bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151


7.1 Definitions and Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
7.1.1 A Multiplier Using a Compressor Tree . . . . . . . . . . . . . . 153
7.1.2 From Bit Arrays to Bit Heaps . . . . . . . . . . . . . . . . . . . . . . 157
7.1.3 Bit Heaps for Portable Application-Specific
Arithmetic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
7.2 Expressing a Computation as a Bit Heap . . . . . . . . . . . . . . . . . . . . 161
7.2.1 Managing Constant Bits . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
7.2.2 Managing Signed Numbers . . . . . . . . . . . . . . . . . . . . . . . . 162
7.2.3 Algebraic Optimizations . . . . . . . . . . . . . . . . . . . . . . . . . . 163
7.2.4 Truncating a Bit Heap for Last-Bit Accuracy . . . . . . . . . 167
7.3 Compressor Tree Synthesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
7.3.1 Basic Compression Algorithms . . . . . . . . . . . . . . . . . . . . 176
7.3.2 A Bestiary of Compressors . . . . . . . . . . . . . . . . . . . . . . . . 180
7.3.3 Compressor Tree Synthesis Using Arbitrary
Compressors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
7.3.4 Some Remarks on the Final Adder . . . . . . . . . . . . . . . . . 193
7.4 Experimentations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198

8 Fixed-Point Multiplication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203


8.1 A Functional Point of View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
8.1.1 Integer Multipliers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
8.1.2 Fixed-Point Numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
Contents xiii

8.1.3 Error Analysis Involving Multipliers . . . . . . . . . . . . . . . 209


8.1.4 Summary: Multipliers for Computing Just Right . . . . 211
8.2 Overview of Multiplier Construction . . . . . . . . . . . . . . . . . . . . . . . 213
8.3 Partial Product Generation and Sign Management . . . . . . . . . . . 214
8.3.1 Signed Multiplication in Radix-2 . . . . . . . . . . . . . . . . . . . 215
8.3.2 Radix-4 Multiplication Using Booth Encoding . . . . . . . 215
8.3.3 Higher Radix Multiplication . . . . . . . . . . . . . . . . . . . . . . . 221
8.4 Multiplier Construction for FPGAs . . . . . . . . . . . . . . . . . . . . . . . . . 222
8.4.1 Using a Single DSP for Multiple Multiplications . . . . . 223
8.4.2 Multiplier Construction as a Tiling Problem . . . . . . . . . 226
8.4.3 Solving the Tiling Problem . . . . . . . . . . . . . . . . . . . . . . . . 233
8.5 Truncated Multipliers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
8.5.1 Plain or Booth Truncated Multipliers . . . . . . . . . . . . . . . 237
8.5.2 Tiling for Optimal Truncated Multipliers
on FPGAs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
8.6 The Karatsuba Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
8.6.1 Two-Part Splitting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
8.6.2 Subtractive Karatsuba Formula . . . . . . . . . . . . . . . . . . . . 245
8.6.3 Tile Representation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
8.6.4 Square K-Part Splitting . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
8.6.5 Recursive Karatsuba . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
8.6.6 Generalized Karatsuba Formula . . . . . . . . . . . . . . . . . . . 249
8.6.7 Karatsuba with Rectangular Sub-multipliers . . . . . . . . 249
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255

9 Fixed-Point Division . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259


9.1 Fixed-Point Division: Problem Formulation . . . . . . . . . . . . . . . . . 260
9.1.1 Format Considerations for Unsigned
Integer Division . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
9.1.2 Format Considerations for Signed
Integer Division . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
9.1.3 Format Considerations for Fixed-Point Division . . . . 262
9.1.4 Division of Normalized Floating-Point
Significands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
9.2 Digit-Recurrence Algorithms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
9.2.1 Schoolbook Integer Division in Binary (Restoring
Division) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
9.2.2 General Radix-β Formalization of
Integer Division . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
9.2.3 General Radix-β Formalization for the Division of
Normalized Significands . . . . . . . . . . . . . . . . . . . . . . . . . . 271
9.2.4 Using Redundant Digit Sets . . . . . . . . . . . . . . . . . . . . . . . 272
9.2.5 Initialization and Termination with Redundant
Digits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
xiv Contents

9.2.6 Conversion of the Quotient from Redundant Form


to Binary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280
9.2.7 High-Radix Integer Division . . . . . . . . . . . . . . . . . . . . . . . 282
9.2.8 Prescaling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283
9.2.9 Speeding Up the Partial Remainder Computation . . . 286
9.2.10 A Case Study for Low-Latency Double Precision
Division . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
9.3 Division Using Multiplication by the Reciprocal . . . . . . . . . . . . . 288
9.3.1 Error Analysis for a Faithfully Rounded Quotient
out of a Reciprocal Approximation . . . . . . . . . . . . . . . . . 289
9.3.2 Reciprocal Using a Generic Approximation
Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291
9.3.3 Reciprocal Using Newton-Raphson Iteration . . . . . . . . 291
9.4 Division Using Quadratic Series Expansion . . . . . . . . . . . . . . . . . 294
9.5 Other Equivalent Multiplicative Methods . . . . . . . . . . . . . . . . . . . 299
9.5.1 Multiplicative Normalization (Goldschmidt’s
Algorithm) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300
9.5.2 Higher-Order Housholder Methods . . . . . . . . . . . . . . . 301
9.5.3 Ad hoc Evaluation of Series Expansion . . . . . . . . . . . . . 301
9.6 Square Root, the Little Sister of Division . . . . . . . . . . . . . . . . . . . . 302
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303

10 Shifters and Leading Bit Counters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307


10.1 Shifters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
10.1.1 Avoiding Bidirectional Shifters . . . . . . . . . . . . . . . . . . . . . 308
10.1.2 Parameters of a Generic Shifter Generator . . . . . . . . . . 309
10.1.3 Architecture of an Exact Full Shifter . . . . . . . . . . . . . . . . 312
10.1.4 Barrel Shifter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314
10.1.5 Barrel Shifter with Early Sticky Bit Computation . . . . 314
10.2 Variations on Leading Zero Counters . . . . . . . . . . . . . . . . . . . . . . . 316
10.2.1 Naive LZC Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . 318
10.2.2 Logarithmic-Time LZC Architectures . . . . . . . . . . . . . . 320
10.3 Normalizer (Combined LZC + Shifter) . . . . . . . . . . . . . . . . . . . . . 323
10.4 To Read Further . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326

11 Basic Floating-Point Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329


11.1 Floating-Point Addition and Subtraction . . . . . . . . . . . . . . . . . . . . 331
11.1.1 General Considerations and Terminology . . . . . . . . . . . 331
11.1.2 Baseline Addition Architecture . . . . . . . . . . . . . . . . . . . . 336
11.1.3 From Baseline Adder to IEEE 754
Compliance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339
11.1.4 Dual-Path Architectures and Other Speculative
Techniques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340
Contents xv

11.2 Floating-Point Multiplication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343


11.2.1 Baseline Multiplication Architecture . . . . . . . . . . . . . . . . 343
11.2.2 From Baseline Multiplier to IEEE 754 Compliance . . . 345
11.2.3 Faithful Floating-Point Multiplier . . . . . . . . . . . . . . . . . . 346
11.2.4 Injection Rounding to Speed Up a Floating-Point
Multiplier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346
11.3 Floating-Point Division . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
11.3.1 Baseline Division Architecture . . . . . . . . . . . . . . . . . . . . . 347
11.3.2 From Baseline Divider to IEEE 754 Compliance . . . . . 350
11.3.3 Faithful Floating-Point Division . . . . . . . . . . . . . . . . . . . . 351
11.3.4 Correct Rounding Out of a Faithfully Rounded
Quotient . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
11.4 Floating-Point Square Root . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353
11.4.1 Baseline Square Root Architecture . . . . . . . . . . . . . . . . . . 353
11.4.2 Faithful Floating-Point Square Root . . . . . . . . . . . . . . . . 355
11.4.3 From Baseline Square Root to IEEE 754
Compliance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356
11.4.4 Correct Rounding Out of Faithful Rounding for
Square Root . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356
11.5 Floating-Point Comparison . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357
11.5.1 Specification of Floating-Point Comparison . . . . . . . . . 357
11.5.2 Implementation of a Floating-Point Comparator . . . . . 359
11.5.3 Specializations of a Floating-Point Comparator . . . . . . 360
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360

Part II Operator Specialization


12 Multiplication by Constants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
12.1 Shift-and-Add Integer Constant Multiplication . . . . . . . . . . . . . 366
12.1.1 Signed Digit Representation . . . . . . . . . . . . . . . . . . . . . . . 368
12.1.2 Formalization of the Shift-and-Add SCM Problem . . . 369
12.1.3 Minimal-Adder Constant Multiplication by Graph
Enumeration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370
12.1.4 Minimal-Adder Constant Multiplication by Using
ILP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373
12.1.5 Minimal-Adder Constant Multiplication Using
Ternary Adders . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378
12.1.6 Minimizing Logic Resources Instead of Number of
Adders . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380
12.2 Integer Constant Multiplication Using Tables . . . . . . . . . . . . . . . 383
12.2.1 Tabulated Constant Multipliers . . . . . . . . . . . . . . . . . . . . 383
12.2.2 The Table-and-Addition KCM Algorithm . . . . . . . . . . 384
12.3 Multiplication of a Fixed-Point Number by a Real
Constant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385
12.3.1 Tabulated Perfectly Rounded Constant
Multipliers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386
xvi Contents

12.3.2 Faithful Fix-by-Real Using Shift-and-Add . . . . . . . . . . . 387


12.3.3 Faithful Fix-by-Real KCM Algorithm . . . . . . . . . . . . . . . 390
12.4 Multiplication by a Rational Constant . . . . . . . . . . . . . . . . . . . . . . 395
12.4.1 On the Periodicity of the Binary Representation of
Rational Numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396
12.4.2 Periodical Shift-and-Add Graphs . . . . . . . . . . . . . . . . . . 397
12.4.3 Table-Based Multiplication by Rational Constants . . . 401
12.5 Multiplication by Multiple Constants . . . . . . . . . . . . . . . . . . . . . . . 401
12.5.1 Multiple Constant Multiplication Using
Shift-and-Add . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402
12.5.2 Table-Based Multiple Constant Multiplication . . . . . . . 407
12.5.3 Sum of Constant Products, Integer Case . . . . . . . . . . . . 407
12.5.4 Constant Matrix-Vector Multiplication . . . . . . . . . . . . . . 410
12.5.5 Table-Based Sum of Products of Fixed-Point Inputs
by Real Constants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412
12.6 Other FPGA-Specific Techniques . . . . . . . . . . . . . . . . . . . . . . . . . . 414
12.6.1 Constant Multiplication Using DSP Blocks on
FPGAs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414
12.6.2 Reconfigurable Constant Multiplication . . . . . . . . . . . . 416
12.7 Conclusion: Choosing the Best Constant Multiplication
Technique in a Given Context . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418

13 Division by Constants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427


13.1 Multiplying by the Reciprocal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 428
13.2 Linear Table-Based Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . 429
13.2.1 Radix-2k Representation . . . . . . . . . . . . . . . . . . . . . . . . . . . 430
13.2.2 Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 430
13.2.3 Iterative or Unrolled Implementation of the Basic
Recurrence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432
13.2.4 Cost Evaluation of LinArch . . . . . . . . . . . . . . . . . . . . . . . 432
13.2.5 FPGA-Specific Remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . 434
13.3 Parallel Division . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434
13.4 Remainder-Only or Quotient-Only . . . . . . . . . . . . . . . . . . . . . . . . . 435
13.4.1 Reciprocal Method Outputting Only the Quotient . . . 435
13.4.2 Remainder-Only Variant of LinArch and BTCD . . . . . 436
13.5 Composite Division . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437
13.5.1 Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437
13.5.2 Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438
13.5.3 Results and Discussions . . . . . . . . . . . . . . . . . . . . . . . . . . . 438
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440

14 Fixed-Point Squares, Cubes, and Other Integer Powers . . . . . . . . . . 443


14.1 Generalities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443
14.2 Squarers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444
14.2.1 Basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444
Contents xvii

14.2.2 High-Radix Square . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445


14.2.3 Booth Recoding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446
14.2.4 Truncated Squarers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446
14.2.5 Squarer-Specific Tiling for FPGAs . . . . . . . . . . . . . . . . . . 447
14.3 Cubes and Higher Powers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449
14.3.1 Direct Algebraic Expression . . . . . . . . . . . . . . . . . . . . . . . 449
14.3.2 Computing Powers by Squaring and Multiplying . . . 450
14.3.3 Approximate Fixed-Point Powers . . . . . . . . . . . . . . . . . . 451
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451

15 Specialization and Fusion of Floating-Point Operators . . . . . . . . . . 453


15.1 Floating-Point Constant Multiplication . . . . . . . . . . . . . . . . . . . . . 453
15.1.1 Floating-Point Multiplication by a Power of Two . . . . 454
15.1.2 Baseline Faithful Floating-Point Multiplier by a
Constant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455
15.1.3 Correctly Rounded Multiplication by a
Floating-Point Constant . . . . . . . . . . . . . . . . . . . . . . . . . . . 457
15.1.4 Correctly Rounded Multiplication by a Real
Constant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459
15.1.5 Correct Rounding of the Floating-Point
Multiplication by a Rational Constant . . . . . . . . . . . . . . 461
15.1.6 Subnormal Handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 462
15.2 Floating-Point Division by a Small Integer Constant . . . . . . . . . 464
15.2.1 Baseline Operator for Normalized Inputs . . . . . . . . . . . 464
15.2.2 Subnormal Handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467
15.3 Floating-Point Squares, Cubes, and X p . . . . . . . . . . . . . . . . . . . . . 467
15.4 Floating-Point Addition of Positive Terms . . . . . . . . . . . . . . . . . . 468
15.5 Combined Floating-Point Sum and Difference . . . . . . . . . . . . . . 469
15.6 Fused Multiply and Add, Other Sums of Products . . . . . . . . . . 469
15.7 Floating-Point Optimizations in an HLS Context . . . . . . . . . . . . 470
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472

Part III Generic Methods for Fixed-Point Function Approximation


16 Generalities on Fixed-Point Function Approximation . . . . . . . . . . . 477
16.1 Defining Domain and Range . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479
16.2 Discretization Issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480
16.2.1 Range Issues and Their Solutions . . . . . . . . . . . . . . . . . . 481
16.2.2 Monotonicity Issue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485
16.3 Some Classes of Numerical Functions . . . . . . . . . . . . . . . . . . . . . . 486
16.3.1 Algebraic Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486
16.3.2 Elementary and Special Functions . . . . . . . . . . . . . . . . . . 487
16.4 A First Generic Approximator: Simple Tabulation . . . . . . . . . . . 488
16.4.1 Tabulating Precomputed Function
Values in a ROM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489
16.4.2 Actual Cost of a ROM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 491
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492
xviii Contents

17 Function Evaluation Using Tables and Additions . . . . . . . . . . . . . . . 497


17.1 Lossless Differential Table Compression . . . . . . . . . . . . . . . . . . . . 497
17.1.1 Applicability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 498
17.1.2 The Parameter Space of LDTC . . . . . . . . . . . . . . . . . . . . . 499
17.1.3 The LDTC Optimization Algorithm . . . . . . . . . . . . . . . . 500
17.1.4 Cost Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 501
17.1.5 Evaluation and Observations . . . . . . . . . . . . . . . . . . . . . . 502
17.2 Multipartite Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503
17.2.1 Applicability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503
17.2.2 The Basic Bipartite Method . . . . . . . . . . . . . . . . . . . . . . . . 504
17.2.3 Exploiting Symmetry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507
17.2.4 From Bipartite to Multipartite: Splitting the TO . . . . . . 508
17.2.5 Error Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 511
17.2.6 Computing the Sizes of the TOi . . . . . . . . . . . . . . . . . . . . 516
17.2.7 Filling the Tables Using HUB Format . . . . . . . . . . . . . . . 517
17.2.8 Errorless Compression of the TIV . . . . . . . . . . . . . . . . . . 518
17.2.9 Putting It All Together: The Multipartite
Optimization Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . 519
17.2.10 The Issue of Non-Monitonicities . . . . . . . . . . . . . . . . . . . 521
17.2.11 Toward ILP-Optimized Multipartite Architectures . . . 522
17.2.12 Conclusion: Multipartite Architectures Are Close
to Optimal Among Order-One Methods . . . . . . . . . . . . 523
17.3 Other Table-and-Addition Methods . . . . . . . . . . . . . . . . . . . . . . . . 523
17.3.1 Addition-Table-Addition Methods . . . . . . . . . . . . . . . . . 523
17.3.2 Partial Product Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . 526
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 527

18 Polynomial-Based Architectures for Function Evaluation . . . . . . . . 529


18.1 A Primer on Polynomial Approximation . . . . . . . . . . . . . . . . . . . . 530
18.1.1 Taylor Approximation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 531
18.1.2 Remez Minimax Approximation . . . . . . . . . . . . . . . . . . . 533
18.1.3 Relationship Between Degree and Accuracy . . . . . . . . 535
18.1.4 Relationship Between Interval Size and Accuracy . . . 535
18.1.5 Machine-Efficient Polynomial Approximation . . . . . . . 536
18.1.6 Summing Up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 538
18.1.7 Polynomials Are a Special Case of Rational
Fractions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 539
18.2 Generic Range Reduction Techniques . . . . . . . . . . . . . . . . . . . . . . . 541
18.2.1 Range Reduction by Uniform Piecewise Splitting . . . . 541
18.2.2 Interpolation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 547
18.2.3 Logarithmic Piecewise Splitting . . . . . . . . . . . . . . . . . . . . 548
18.2.4 Hierarchical Segmentation . . . . . . . . . . . . . . . . . . . . . . . . . 551
18.2.5 Arbitrary Dichotomy-Based Segmentation . . . . . . . . . . 552
18.2.6 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 553
Contents xix

18.3 Hardware Polynomial Evaluation . . . . . . . . . . . . . . . . . . . . . . . . . . 554


18.3.1 Horner Evaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 554
18.3.2 Parallel Evaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 558
18.3.3 Other Polynomial Evaluation Techniques . . . . . . . . . . . 561
18.4 Putting It All Together: Generation of Polynomial
Approximators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 562
18.4.1 Overall Error Analysis and Error Budget . . . . . . . . . . . 563
18.4.2 A Basic Polynomial Approximator Without Range
Reductions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 564
18.4.3 A Polynomial Approximator with Uniform
Piecewise Range Reduction . . . . . . . . . . . . . . . . . . . . . . . 565
18.4.4 Combined Approximation and Rounding
Optimization Using integer linear programming
(ILP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 566
18.5 Floating-Point Architectures Based on Fixed-Point
Polynomials . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 568
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 569

19 Digit Recurrence for Algebraic Functions . . . . . . . . . . . . . . . . . . . . . . . 573


19.1 Digit-Recurrence Square Root . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 574
19.1.1 Range Reduction for Floating-Point and
Fixed-Point Binary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 574
19.1.2 Generic Radix-β Formulation . . . . . . . . . . . . . . . . . . . . . . 575
19.1.3 Simple Binary Restoring Square Root . . . . . . . . . . . . . . . 576
19.1.4 Binary Non-restoring Square Root . . . . . . . . . . . . . . . . . . 578
19.1.5 Exploiting Redundant Number Systems in the
Square Root . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 580
19.2 Cube Root . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 588
19.3 2D and 3D Euclidean Norms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 589
19.4 The E-Method for Evaluating Rational Functions . . . . . . . . . . . 591
19.4.1 Digit Recurrence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 591
19.4.2 Rational Approximation Compatible with the
E-Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 593
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 594

Part IV Example Composite Operators


20 Fixed-Point Sine and Cosine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 599
20.1 Mathematical Background . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 599
20.2 Fixed-Point Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 602
20.2.1 Binary Angles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 602
20.2.2 Scaled Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 603
20.2.3 Quick Overview of the Algorithms Compared in
This Chapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 604
20.3 Argument Reduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 605
20.4 CORDIC Computing Just Right . . . . . . . . . . . . . . . . . . . . . . . . . . . . 605
20.4.1 Description of the Algorithm . . . . . . . . . . . . . . . . . . . . . . 605
xx Contents

20.4.2 Overall Error Budget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 609


20.4.3 Approximation Error and Number of Iterations . . . . . 610
20.4.4 Rounding Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 610
20.4.5 Reduced Zi Datapath . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 613
20.4.6 Replacing Half of the CORDIC Iterations with a
Small Multiplier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 613
20.5 An Architecture Based on Tables and Multipliers . . . . . . . . . . . . 614
20.5.1 Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 615
20.5.2 Rounding Error Analysis and Implementation
Details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 616
20.5.3 Architectural Details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 618
20.5.4 Computing the Number of Guard Bits . . . . . . . . . . . . . . 619
20.5.5 Special Cases for Small Sizes . . . . . . . . . . . . . . . . . . . . . . . 620
20.6 Architecture Using a Generic Polynomial Evaluator . . . . . . . . . 620
20.7 Comparison and Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 620
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 621

21 Floating-Point Accumulation and Sum of Products . . . . . . . . . . . . . . 623


21.1 Motivation and Parametrization . . . . . . . . . . . . . . . . . . . . . . . . . . . 625
21.1.1 Exact Floating-Point Sum . . . . . . . . . . . . . . . . . . . . . . . . . . 625
21.1.2 Exact Floating-Point Sum of Products . . . . . . . . . . . . . . 626
21.1.3 Kulisch’s Universal Exact Accumulator . . . . . . . . . . . . . 627
21.1.4 Application-Specific Parameterization . . . . . . . . . . . . . . 628
21.2 Accumulator Architectures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 630
21.2.1 Exact Floating-Point Multiplier . . . . . . . . . . . . . . . . . . . . 630
21.2.2 Simple Accumulator Architectures for Small
Precisions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 632
21.2.3 High-Radix Carry-Save Architecture . . . . . . . . . . . . . . . 635
21.2.4 Conversion of the Accumulator Back to Floating
Point . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 636
21.3 Cost, Speed, and Accuracy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 638
21.4 To Probe Further . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 639
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 639

22 Floating-Point Exponential . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 641


22.1 Mathematical Background . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 641
22.2 Number Formats and the Exponential Function . . . . . . . . . . . . . 642
22.2.1 Fixed Point Versus Floating Point . . . . . . . . . . . . . . . . . . 642
22.2.2 Fixed-Point-In, Floating-Point-Out Version . . . . . . . . . . 643
22.2.3 Input Filtering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 643
22.2.4 A First Architecture: Direct Tabulation . . . . . . . . . . . . . . 645
22.3 Architecture for Floating-Point Range Reduction . . . . . . . . . . . . 646
22.3.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 646
22.3.2 Accuracy Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . 647
Visit https://textbookfull.com
now to explore a rich
collection of eBooks, textbook
and enjoy exciting offers!
Contents xxi

22.3.3 Fixed-Point Conversion . . . . . . . . . . . . . . . . . . . . . . . . . . . 648


22.3.4 Computation of the Tentative Exponent . . . . . . . . . . . . 649
22.3.5 Computation of Y . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 650
22.3.6 Computation of eY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 651
22.3.7 Normalization and Rounding . . . . . . . . . . . . . . . . . . . . . . 651
22.3.8 Overall Error Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . 651
22.4 Fixed-Point-In, Floating-Point Out Exponential . . . . . . . . . . . . . . 654
22.5 Fixed-Point Computation of eY . . . . . . . . . . . . . . . . . . . . . . . . . . . . 654
22.5.1 Using Large Tables and Square Multipliers . . . . . . . . . . 655
22.5.2 First-Order Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . 659
22.5.3 Polynomial Approximation for Large Precisions . . . . . 660
22.5.4 FPGA-Specific Remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . 661
22.5.5 Iterative Computation of eY Using Small Tables and
Rectangular Multipliers . . . . . . . . . . . . . . . . . . . . . . . . . . . 662
22.5.6 To Read Further . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 663
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 664

Part V Application Domains


23 Arithmetic in the Design of Linear Time-Invariant Filters . . . . . . . 669
23.1 An Introduction to Discrete-Time Signals and Filters . . . . . . . . . 670
23.1.1 Discrete-Time Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 670
23.1.2 Elementary Operations on Discrete-Time Signals . . . . 670
23.1.3 Discrete-Time Systems or Filters . . . . . . . . . . . . . . . . . . . 671
23.1.4 Linear Time-Invariant Filters . . . . . . . . . . . . . . . . . . . . . . 672
23.1.5 Specifying LTI Filters by Constant-Coefficient
Equations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 676
23.1.6 Abstract Filter Structures Versus Finite-Precision
Circuits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 681
23.1.7 Filters Directly Defined by Their Coefficients . . . . . . . . 681
23.1.8 Filters Defined in the Frequency Domain . . . . . . . . . . . 682
23.1.9 Filter Design: From a Frequency Specification to a
Time-Domain Architecture . . . . . . . . . . . . . . . . . . . . . . . . 685
23.2 An Arithmetic Approach to the Implementation
of LTI Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 687
23.3 Hardware Digital Filter Faithful to an LTI Filter . . . . . . . . . . . . . 688
23.3.1 Worst-Case Peak Gain of an LTI Filter . . . . . . . . . . . . . . 689
23.3.2 Interface Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . 690
23.3.3 Overall Error Analysis of the Implementation of a
Direct-Form LTI Filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . 691
23.3.4 Error Amplification in the Feedback Loop . . . . . . . . . . 692
23.3.5 Putting All Together . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 694
23.4 Hardware Digital Filter Faithful to a Frequency
Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 695
23.4.1 Formal Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 695
23.4.2 Hardware Filter Design as an Optimization Problem . 695
xxii Contents

23.4.3 State of the Art in the Design of Filters Faithful to a


Frequency Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . 697
23.4.4 Frequency Constraints for Linear-Phase FIR Filters
in ILP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 698
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 702

24 Arithmetic for Deep Learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 707


24.1 Neural Network Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 708
24.1.1 Basic Neural Network Structure . . . . . . . . . . . . . . . . . . . 708
24.1.2 Activation Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 712
24.1.3 Topology and Hyperparameters . . . . . . . . . . . . . . . . . . . 713
24.1.4 Training and Using a Neural Network . . . . . . . . . . . . . . 713
24.1.5 Training Metrics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 715
24.2 Convolutional Neural Networks . . . . . . . . . . . . . . . . . . . . . . . . . . . 715
24.2.1 Convolutional Layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 716
24.2.2 Pooling Layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 719
24.2.3 Batch Normalization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 720
24.2.4 Passthrough Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 721
24.2.5 Softmax Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 721
24.2.6 An Example CNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 722
24.3 Number Formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 722
24.3.1 Number Formats for Inference . . . . . . . . . . . . . . . . . . . . . 724
24.3.2 Number Formats for Training . . . . . . . . . . . . . . . . . . . . . . 729
24.4 Training . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 730
24.4.1 The Training Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 730
24.4.2 Training by Backpropagation . . . . . . . . . . . . . . . . . . . . . . 731
24.4.3 Training and Activation Functions . . . . . . . . . . . . . . . . . 733
24.4.4 Quantization-aware training (QAT) . . . . . . . . . . . . . . . . 733
24.5 Implementation Aspects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 734
24.5.1 Architectures for Inference . . . . . . . . . . . . . . . . . . . . . . . . 734
24.5.2 Fast Convolution Algorithms . . . . . . . . . . . . . . . . . . . . . . 737
24.6 Case Studies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 741
24.6.1 Google’s TPU Family . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 741
24.6.2 Binary CNN Architecture . . . . . . . . . . . . . . . . . . . . . . . . . 743
24.6.3 AddNet: FPGA-Specific Optimization of the
Multipliers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 744
24.6.4 Unrolling a Ternary CNN . . . . . . . . . . . . . . . . . . . . . . . . . 746
24.6.5 LogicNets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 750
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 751

A Custom Arithmetic Datapath Design with FloPoCo . . . . . . . . . . . . . . 761


A.1 History of the FloPoCo Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 761
A.2 FloPoCo From a User Point of View . . . . . . . . . . . . . . . . . . . . . . . . 762
A.2.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 762
A.2.2 More on Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 763
Contents xxiii

A.2.3 Do Not Trust FloPoCo, the Test Bench Is Included . . . 764


A.2.4 Obscure Branches and Code Attics . . . . . . . . . . . . . . . . . 766
A.2.5 Automatic Pipelining, the User Point of View . . . . . . . 766
A.3 FloPoCo for Arithmetic Designers . . . . . . . . . . . . . . . . . . . . . . . . . . 769
A.3.1 Operators and Instances . . . . . . . . . . . . . . . . . . . . . . . . . . . 770
A.3.2 The Target Class Hierarchy . . . . . . . . . . . . . . . . . . . . . . . . 771
A.3.3 Automatic Pipelining . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 772
A.3.4 The BitHeap Framework . . . . . . . . . . . . . . . . . . . . . . . . . . 775
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 777

B Optimization Using Integer Linear Programming . . . . . . . . . . . . . . . . 781


B.1 Linear Programming Problems . . . . . . . . . . . . . . . . . . . . . . . . . . . . 782
B.1.1 A First Example Problem . . . . . . . . . . . . . . . . . . . . . . . . . . 783
B.1.2 Integer, Binary, and Mixed-Integer Linear
Programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 783
B.2 A Tutorial on Using ILP Solvers . . . . . . . . . . . . . . . . . . . . . . . . . . . . 784
B.2.1 Using Stand-Alone Tools . . . . . . . . . . . . . . . . . . . . . . . . . . 785
B.2.2 ILP Solvers Embedded Within Other Scripting
Language . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 787
B.2.3 ScaLP, a Common C++ Interface to ILP Solvers . . . . . . 787
B.3 Practical Problem Modeling with ILP . . . . . . . . . . . . . . . . . . . . . . . 787
B.3.1 Using Boolean Variables to Model Decision
Problems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 788
B.3.2 Translating Boolean Relations into Constraints . . . . . . 788
B.3.3 Indicator Constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 793
B.3.4 Splitting Integers into Their Binary
Representation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 793
B.3.5 Counting Leading and Trailing Zeroes . . . . . . . . . . . . . . 794
B.4 Addressing Limitations of ILP Solvers . . . . . . . . . . . . . . . . . . . . . . 795
B.4.1 Run-Time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 795
B.4.2 Numerical Instabilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . 796
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 796

Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 799
1 Introduction
CHAPTER 1

Mathematics is the queen of the sciences,


and arithmetic is the queen of mathematics.
Carl Friedrich Gauß

That arithmetic is a menial task is proved


by the fact that it is the only one that can be performed by a machine.
Arthur Schopenhauer

1.1 Computer Arithmetic

Computer arithmetic is the art of representing and processing numbers in a


machine. It has its roots in the abacus of ancient times and in the mechan-
ical calculator built by Schickhard, Pascal, Leibniz, and others during the
Renaissance. It has also been at the core of electronic computers since the
dawn of this technology in the 1940s.
Computer arithmetic is deeply rooted in technology. For instance, when
technology was based on humans’ head and fingers, numbers were repre-
sented in radix 10 or 60. Western abacuses, the Pascaline, the Arithmometer,
and the Eniac were decimal calculators. In the mid-1930s, however, Konrad
Zuse understood that machines would be more efficient when computing
in binary [Zus84; Cer90; Roj97]. The key idea was that it was much easier
to work with two states, on and off. After two years of attempts to process
binary numbers mechanically, Zuse turned to relay-based switching, and

© Springer Nature Switzerland AG 2024 1


F. de Dinechin, M. Kumm, Application-Specific Arithmetic,
https://doi.org/10.1007/978-3-031-42808-1_1
2 1 Introduction

later to vacuum tubes, and the idea remained relevant with transistor-based
switching, the core technology behind current computers.
During the electronic computer era, technological progress has often
driven evolutions in the computer arithmetic domain. One illustrative ex-
ample is the use of memory when evaluating elementary functions (expo-
nential and logarithm, trigonometric, etc.). In the late 1980s, as memory sizes
doubled every other year following Moore’s law, it became relevant to de-
sign algorithms that could replace long computations with large tables of
precalculated values [Tan89; Tan90; GB91; Tan92]. Such algorithms domi-
nated the state of the art for three decades. But what technology gives, it
can also take back. Even though memory size still increases, memory ac-
cess time has become the main performance bottleneck in current multicore
computers. For this reason, table-free algorithms are now considered more
efficient in many cases [CHT02]: it is often faster and more energy-efficient
to compute tens of additions and multiplications than to perform one mem-
ory lookup.
Digital technology is still evolving. How should computer arithmetic
adapt to current and upcoming changes?
One answer proposed in this book is look beyond traditional computer
arithmetic, long focused on the four basic operations and their monolithic,
one-size-fits-all implementations in the arithmetic units at the core of micro-
processors. The object of this book is the systematic study of non-standard
arithmetic units, built and optimized for specific applications: what we call
application-specific arithmetic.
The remainder of this chapter first justifies this claim and then sketches
the scope and potential of application-specific arithmetic.

1.2 Trends in Digital Technology

For five decades, the evolution of technology has been well summarized
by Moore’s law, which states that the number of transistors that can be inte-
grated on an economically viable chip doubles every other year. This law has
remained surprisingly accurate over this long period of time, partly because
it has become a self-fulfilling prophecy on which the economics of a ma-
jor part of the digital sector relies. The International Technology Roadmap
for Semiconductors (ITRS) has made sure that we get smaller transistors (or
equivalently more transistors per chip) as long as fundamental physical lim-
its are not reached.
However, the circuit-level performance brought by smaller transistors is
no longer what it used to be. Until the end of the twentieth century, each
technology generation brought smaller transistors that would switch faster
and consume less power (this is referred to as Dennard scaling). Thus, pro-
cessors were more and more powerful and clocked higher and higher. How-
Random documents with unrelated
content Scribd suggests to you:
Chaucer befolyása szembetünő egész régebbi irodalmunkban s
újabban is nemcsak Pope és Dryden, hanem egész sereg angol író
be nem vallott tartozását könnyen lehet megállapítani a Chaucer
javára.
Az ember ámul azon a gazdagságon, amely annyi kosztost tud
táplálni. Már pedig maga Chaucer is egy nagy, nagy kölcsönző! Úgy
látszik folytonosan fölvett kölcsönöket Lydgate és Caxton útján,
Guido di Colonnától, akinek latin költeménye a trójai háborúról
viszont Dares Phrygius, Ovidius, Statius kompilációja. Azután
Chaucer jótevői még: Petrarca, Boccaccio s a provencei költők: a
«Romaunt of the Rose» («A rózsaregény») csak jó ítélettel végzett
fordítása Guillaume de Lorris és Jean de Meung művének; «Troilus
and Creseide»-jét az urbinói Lollius után, a «The Cock und the Fox»
(«A kakas és a róka») Marie de France egy «lais»-a után; a «The
House of Fame» (A hír háza) franciából vagy olaszból készült s a
szegény Gowert úgy kihasználja, mintha csupán téglavető vagy
kőfejtő hely volna, ahonnan építőanyagát veszi. Elcsenéseit azzal
védi, hogy az, amit elvett, ott, ahol találta, mit sem ért, ellenben
ahová ő tette és hátrahagyta, a legértékesebb lett. Mintegy
gyakorlati szabály lett az irodalomban, hogy ha valaki csak egyszer
is bebizonyította, hogy tud eredetit írni, akkor már jogosult tetszése
szerint mások írásaiból csenegetni; a tulajdon azé, aki fenn tudja
tartani és azé, aki a kellő elhelyezést tudja biztosítani számára. A
kikölcsönzött gondolatokon rajta van ugyan némi félszegség
bélyege, mihelyt azonban megtanultuk, mit csináljunk velük, máris a
sajátunkká válnak.
És ugyanígy minden egyéb eredetiség is csak viszonylagos.
Minden gondolkozó retrospektív (a mult örökségéből vagy a mások
tapasztalatából táplálkozik). Westminster vagy Washington tanult
törvényhozója a néptömegek ezrei nevében beszél és szavaz. Fedd
föl mily útakon és módokon, mily láthatatlan csatornákon tudja meg
ez a szenátor a népnek kívánságait, mennyi gyakorlati és tapasztalt
ember táplálja őt szóban, írásban, tényekkel, adatokkal,
értékítéletekkel s ez mindjárt jócskán elvesz az ő erős
egyéniségének és magatartásának hatásából. Ahogyan Sir Robert
Peel és Webster ezrekért szavaztak, Locke és Rousseau éppúgy
gondolkoztak ezrekért s így környékezték Homerost, Menut, Szádit,
Miltont források és kutak, mikből ők merítgettek: rég elfeledett
barátok, szerelmesek, könyvek, hagyományok, közmondások,
amelyek, ha mind látnók őket – kisebbé tennék a költészetük
csodáját. Tekintélyes magabízással szólott-e a költő? Avagy érezte,
hogy legyőzte valamely versenytársa? Ez a szózat csupán az író
enlelkiismeretéhez szól. Az ő keblében van a Delphi, amelyből
eszméire, dolgaira nézve igazolást, igen-t, nem-et kell kérnie s
amelynek feleletére kell magát bíznia. De mindaz az adósság,
amellyel az ilyen kölcsönvevő mások elméjének tartozik, sohasem
fogja megzavarni azt az érzését, hogy ő eredeti ember, mert a
könyvek és mások eszének segítsége csak egyetlen pipafüst-
szippantás ahhoz a legtitkosabb valósághoz képest, amellyel
érintkezik s amelyből merít.
Könnyű látni, hogy a géniusz java, írásai és tettei nem egy ember
műve, hanem tágkörű szociális munka terméke, amikor ugyanattól
ösztökélve ezrek dolgoztak együtt. Angol bibliánk az angol nyelv
erejének és muzsikájának csodás példája. Csakhogy nem egy
ember vagy egy kor teremtette meg, hanem századok és sok
egyház tökéletesítette. Nem volt idő, amikor nem létezett volna
valamelyes fordítása. A lithurgia, amelynek erélyes pathoszát
csodáljuk, a különböző korok és nemzetek kegyességének
anthologiája, a katholikus egyház imáinak és formuláinak fordítása,
miket hosszú idő alatt gyűjtöttek egybe az egész világ szentíróinak
imáiból és elmélkedéseiből. Grotius a «Miatyánk»-ról megjegyzi,
hogy egyes mondatai, amelyből összetevődik, már használatba
voltak Krisztus idejében a rabbinisztikus formulákban s ő onnan
szemelgette föl az aranymagvakat. A Common Law izmos nyelve,
törvényszékeink hatásos tételei, törvénybeli megkülönböztetéseink
szabatos és velős igazsága megannyi adaléka a sok-sok éleslátású,
erősfejű embernek, akik e törvények uralma alatt lévő vidékeken
éltek. Plutarchos fordítása azért lett olyan kitünő, mert fordítás
fordításra következett. Nem volt idő, amikor nem volt volna
valamelyes fordítása. Valami hasonló mehetett végbe réges-régen
ezeknek a könyveknek eredetijével. A világ szabadjára bánt el a
világkönyvekkel. A Védák, Aesopos, Pilpay,28) az Ezeregy Éjszaka,
a Cid, az Ilias, a Robin Hood, a Scottish Minstrelsy nem egyes
emberek művei. Az efféle művek összealkotásában részt vesz
gondolataival az idő, a piac, a kőműves, az ács, az árús, a gazda, a
bohóc. Minden könyv szolgáltat korának egy-egy jó szót; minden
városi szabályzat, minden ipar és kereskedelem, minden napi
bolondság ugyanezt teszi s a faji, általános géniusz, amely nem
átallja bevallani, hogy eredetiségét a mindenkivel közös
eredetiségnek köszönheti, a következő kor szemében mint a saját
kora megtestesítője s kifejezője jelentkezik.
Az irodalombúvároknak s a Shakespeare Society-nek
köszönhetjük az angol dráma fejlődésfokainak történetét a templomi
misztériumoktól s a világi daraboknak kiválásától, a «Ferrex és
Porrex» és «Gurton nagyanyó tűjé»-től azokig a darabokig, mik a
színpadot rendre meghódították és miket Shakespeare megmásított,
átformált és végül a magáévá tett. Ezek a búvárok a sikeren
fölbuzdulva s az egyre érdekesebbé váló problémától sarkalva, nem
hagytak egyetlen könyvespolcot átkutatlanul, egyetlen ládát a
padláson fölbontatlanul, egyetlen elsárgult számadás- vagy
aktacsomót a por és férgek prédájául, olyan heves volt a vágyuk,
hogy fölfedezzék, vajjon csakugyan vadorzó volt-e a siheder-
Shakespeare vagy sem, vajjon csakugyan tartotta-e a lovakat a
színház kapuja előtt, járt-e iskolát s miért hagyta végrendeletében
csak «második legjobb ágyát» Ann Hathaway-nek, a feleségének.
Van valami megható abban az őrületben, mellyel a kor olyan
rosszul választotta meg azt a tárgyat, amelyre minden gyertya veti a
fényét. amely felé fordul minden szem; az a gond, amellyel leltároz
minden semmiséget, ami Erzsébet királynéra, Jakab királyra, az
Essexek, Leicesterek, Burleigh-k és Buckingham-ek dolgaira
vonatkozik, s egyetlen értékes följegyzés nélkül hagyja egy másik
dinasztia megalapítóját, akinek egyedül köszönhető, hogy a Tudor-
dinasztiát egyáltalában emlegetni fogják, azt az embert, aki az egész
angolszász fajt kifejezi az őt tápláló ihlet tüze által s akinek eszméi
táplálják most és századokon át a világ első nemzetét, aki határozott
irányba kényszeríti a lelkeket. A népszerű színészben senki sem
gyanította az emberiség költőjét s a titok titok maradt a költők,
tudósok, udvari emberek s a léha tömeg előtt egyaránt. Bacon, aki
leltárba foglalta kora egész értelmiségét, soha még csak nevét sem
említi. Ben Jonsonnak – bár azt a pár szót, mellyel Shakespearet
magasztalta, iparkodtunk minden ízében megvizsgálni – sejtelme
sem volt annak a hírnek ruganyos tovaterjedéséről, melynek első
rezgését ő indította meg. Kétségtelen, hogy nagylelkűnek tartotta
magát azért a dicséretért, amelyet Shakespeare számára
engedélyezett s egészen bizonyos, hogy kettőjük közül önmagát
tartotta nagyobb költőnek.
Pedig, ha igazat mond a közmondás, hogy az ész fölismerésére
ész kell, a Shakespeare korának alkalmasnak kellett volna lennie az
ő felismerésére. Sir Henry volton négy évvel Shakespeare után
született és 23 évvel utóbb halt meg s ismerősei s a vele levelezők
között találom a következő neveket: Theodore Beza, Isaac
Casaubon, Sir Philip Sidney, Earl of Essex, Lord Bacon, Sir Walter
Raleigh, John Milton, Sir Henry Vane Isaac Walton, dr. Donne,
Abraham Cowley, Bellarmin, Charles Cotton, John Pym, John Hales,
Kepler, Vieta, Albericus Gentilis, Paolo Sarpi, Arminius; mindazokkal
együtt, akikről van bizonyságunk, hogy érintkeztek vele, anélkül,
hogy sok mást előszámlálnánk, akikkel kétségkívül találkozott s akik
közt voltak: Shakespeare, Spenser, Jonson, Beaumont, Massinger, a
két Herbert. Marlowe, Chapman stb. A nagy emberek ama
összetalálkozása óta, amelyet Görögország elénk tár Perikles
korában, sohasem volt még ilyen kiváló társadalom s íme, mégis
híjával volt a géniusznak, amellyel fölismerte volna a mindenség
legjobbfejű emberét. Költőnk álarcán nem hatolt át szem. A hegyet
nem láthatod közvetlen közelből. Egy évszázig tartott, míg sejteni
kezdték, hogy ki is ő s két évszáznak kellett elmúlnia halála után,
míg olyan kritika kezdett jelentkezni, amelyet már hozzá méltónak
gondolunk. Egész mostanáig nem volt lehetséges Shakespeare
történetét megírni. Ő volt a német irodalom atyja: ismeretének
bevezetése Lessing által, műveinek lefordítása Wieland és Schlegel
által a legszorosabb összefüggésben van a német irodalom rohamos
kivirágzásával. Csak a XIX. században – ebben a században, amely
spekulativ bölcselkedő lelkével mintegy eleven Hamlet – találhatott
Hamlet tragédiája ilyen rajongó olvasókra. Most már irodalom,
filozófia, gondolkodás mind átshakepearesedett. Az ő értelme az a
látóhatár, amelyen túl ma sem látunk. Fülünket az ő ritmusa nevelte
muzsikára. Coleridge és Goethe az egyedüli kritikusok, akik
meggyőződéseinket kellő hűséggel tudták kifejezni: ámde minden
művelt lélekben él az ő legfelső hatalmának és szépségének néma
nagyrabecsülése, amely éppúgy jellemzője a kornak, mint a
kereszténység.
A Shakespeare Society kutatást indított minden irányban,
kihirdette, mily adatok hiányoznak, jutalmakat tűzött ki minden,
bizonysággal támogatott fölvilágosításra s mi lett az eredmény?
Néhány fontos adaton kívül, amely az angol színpad említettem
fejlődését megvilágította, nagynehezen összegyűlt egy pár részlet a
költő vagyonáról. Úgy látszik, hogy évről-évre szaporodott a része a
Blackfriars Theatre-ben; hogy a ruhatár és egyéb színpadi kellékek
az övéi voltak; hogy írói és színházrészvényesi jövedelmeiből
birtokot vett szülővárosában; hogy Stratford legjobb házában lakott;
hogy földijei megbizatásokkal, pénzüzletekkel stb. látták el
Londonban; hogy gazdálkodott stb. Abban az időben, hogy
Macbethet írja, pörli Philip Rogerst a stratfordi törvényszéknél 35
shillingért és 10 pennyért, a részére különböző időkben szállított
gabona vételára címén. Kifogástalan családapának látjuk, mert nem
hallunk róla semmi kicsapongást. Összeférő természetű ember volt
mint színész és részvényes, nem ütközik ki kellemetlenül a többi
színész és színházigazgató közül.
Én elismerem mindennek a fölvilágosításnak a fontosságát;
megérdemelte az adatok beszerzésének fáradságát. Ámde mindez
nem vethet világosságot végtelen föltalálóképességére, amely fő-
fővonzó mágnesünk. Bizony nehézkes történetírók vagyunk.
Elmondjuk rendre a rokonság, a születés, szülőhely, az iskola,
iskolatársak, kereset, házasság, könyvkiadás, híresség, halál
krónikáját, de ha e fecsegés végére értünk, ez egyetlen szállal sem
fűződik az istenszülte géniuszhoz s ha történetesen valamely más
életet kaptunk volna ki találomra az Új Plutarchosból, az éppúgy illett
volna a költeményekhez, mint ez, azaz éppoly kevéssé. A költészet
lényeges sajátsága, hogy a Csoda szivárványleányához
hasonlatosan a láthatatlanból szökjék elő, hogy elmossa a multat és
megtagadjon minden történelmet. Malone, Warburton, Dyce, Collier:
hiába vesztegettek rá fáradságot. A híres színházak, a Covent
Garden, Drury Lane, Park és Tremont hiába segítettek. Betterton,
Garrick, Kemble, Kean, Macready életüket szentelték ennek a
lángelmének, őt koronázzák, világosítják, neki engedelmeskednek,
őt fejezik ki. S íme, a géniusz nem ismeri őket. Kezdődik a szavalat;
egy aranyos, halhatatlan szó szökken ki mindebből a festett
pedanteriából s édes viharzást kelt a lelkünkben, amelyet hozzá
férhetetlen otthona fölkeresésére csalogat. Emlékszem, egyszer
láttam egy híres színész, a londoni színpad egyik büszkesége
Hamlet-alakítása s íme a summa, amit akkor hallottam s amire ma
emlékszem, olyasmi volt, amiben a nagy tragikusnak semmi része;
egyszerűen Hamlet kérdése a szellemhez: «Szólj, mit jelent ez, hogy
te, holt tetem, egész acélban így feljársz, a hold fakó fényére,
borzasztván az éjt?» Az a képzelő tehetség, amely egész világgá
szélesíti az író kamráját s minden rendű és rangú cselekvő
személyekkel népesíti be, a vaskos valóságot éppoly hamar
finomítja holdsugárrá. Varázsvesszeje csúffá teszi a színház minden
illuzióját. Van-e életrajz, amely bevilágíthatna a helyekre, amelyekbe
a «Szentivánéji Álom» bebocsát bennünket? Vajjon Shakespeare
beavathatott-e valamely jegyzőt, egyházkerületi titkárt, sekrestyést
vagy vikáriust Stratfordban e finom alkotásának létrejövetelébe?
Ime: az Ardenne-i erdő, Scone Castle szellője, Portia lakának
holdfénye, Othello fogságának «sivár barlangjai és elhagyatott
sivatagai» – vajjon, hol az a harmadunokaöcs vagy más vérrokon, a
kancellár aktacsomója vagy magánlevele, amely csak egyetlen szót
is megőrzött volna ezekről az érzékfeletti titkokról? Szóval, ebben a
drámában, mint minden nagy műalkotásban, Egyptom és India
kyklops-építkezésében, Phidias szobrászatában, a góth
székesegyházakban, Italia festészetében, a spanyol és skót
balladákban: a géniusz fölhúzza maga után a létrát, amidőn az
alkotó korszak fölszállt az égbe s új időnek ad helyet, amely látja
ugyan a műveit, de hiába tudakolja történetüket.
Shakespearenek egyetlen életrajzírója van: Shakespeare s még
ő sem tud nekünk semmit sem mondani, hacsak nem a bennünk
levő Shakespearenek legfogékonyabb és legrokonszenvezőbb
óránkban. Nem állhat föl háromlábú jós-székéről, hogy ihletéről
adalékokat szolgáltasson nekünk. Olvasd a régi okmányokat, miket
a buzgó Dyce és Collier kivonatoltak, elemeztek, összehasonlítottak
s olvasd viszont egyik-másik mennyei mondását, ærolithek ezek,
amelyek mintha az égből hulltak volna le s amelyeket nem
tapasztalatunk, de a keblünkben lévő ember szinte a Végzet igéiként
fogad be – vajjon versenyt tartanak-e azok az adatok s ezek a
mondások; vajjon az előbbiek egyáltalában számba jönnek-e ez
utóbbiakkal szemben; s vajjon melyikük ad több történelmi
betekintést ebbe a nagy emberbe?
És így, bármily sovány is külső történetünk, ha biográfusául –
Aubrey és Rowe helyett – őt magát használjuk, valódi felvilágosítást
kapunk jelleme és sokszor lényege felől s amit az esetre, ha
találkoznánk s dolgunk volna vele, tudnunk fontos volna. Megkapjuk
hiteles nézeteit, meggyőződéseit oly kérdésekről, amelyek feleletért
döngetik mindenki szívét: az élet, halál, a szerelem, a vagyon és a
szegénység, az élet értékei s megszerzésük útjai, módjai felől; az
emberek jelleméről s ennek sorsukra gyakorolt nyilt vagy titkos
hatásairól s azokról a misztikus és démoni hatalmakról, amelyek
megcsúfolják tudományunkat s mégis beleszövik jó és rossz
adományaikat legragyogóbb óráinkba. Olvasta-e valaki a
szonetteket anélkül, hogy ne látta volna mint fedi föl itt a poéta –
olyan álarc alatt amely az értelmes olvasónak nem álarc – a
barátság és szerelem titkát, az érzelmek küzdelmét a
legérzékenyebb s egyben legértelmesebb emberben? Mely titkos
gondolatát nem leplezte le a drámáiban? A nemes urakról s
királyokról írt nagy festményein megkülönböztethetjük, mily alakokat
és embereket szeretett; látjuk, mint gyönyörködik a barátokban, a
szíves vendéglátásban, a szeretettel teljes adakozásban. Hadd
beszéljen nagy szívéről Timon, Warwick s Antonio, a kereskedő.
Bármily keveset tudunk Shakespeareről, mégis ő a modern
történelem egyetlen személye, akit jól ismerünk. Az erkölcs, a
szokások, a gazdaság, a filozófia, a vallás, az ízlés, az életművészet
mely pontját nem érintette? Mely misztériumról nem jelezte tudását?
Mely hivatást, tevékenységet, emberi munkateret nem említett? Mely
királyt nem tanított méltóságra, mint Talma Napoleont? Mely szűz
nem találta őt finomabbnak tulajdon szemérménél is? Melyik
szerelmesen nem tett ő túl szerelemben? Mely bölcs szemén nem
látott túl? Mely nemes urat nem nevelt ki helyesebb magatartásra?
Némely kiváló kritikus abban a véleményben van, hogy csak az a
Shakespeare-kritika ér valamit, amely tisztán drámai érdemeinek
méltatására szorítkozik, mert mint költőt és filozófust hamisan ítélték
meg. Én is éppoly nagyra tartom drámai érdemeit s mégis csak
másodrendűeknek tartom. Olyan ember volt, akinek tele van a feje,
agya s szíve, aki tehát szeret beszélni. Agya eszméket, képeket
lehelt ki, s miközben kijáratot kerestek, a legközelebbi eszközre, a
drámára bukkantak. Ha kevesebb lett volna, vizsgálgathatnók, mint
töltötte be a helyét, mily jó drámaíró volt – s bizony a világ legjobb
drámaírója volt. De az, amit mondott, oly súllyal jelentkezik, hogy
eltéríti figyelmünket kifejezése eszközéről; olyan ő, mint valamely
szent, akinek története átment minden nyelvbe, versbe, prózába,
dalokba, festményekbe, aggszavakba, úgyhogy az alkalom, amely a
szent véleményének majd a beszélgetés, majd az ima, majd a
törvénykönyv alakját adta, mellékessé vált a vélemény
alkalmazásának egyetemességéhez viszonyítva. Így vagyunk a
bölcs Shakespeare-rel és életkönyvével is. Ő írta meg modern
zenénk minden melódiáját, modern életünk szövegkönyvét,
szokásaink kódexét. Ő rajzolta meg Anglia és Európa férfiait s az
amerikai férfiú apját; ő rajzolta meg az embert és írta le a napot és
azt, ami benne történik. Ő olvasott a férfiak és nők szívében,
kiolvasta tisztes és rejtett csalfa gondolataikat; az ártatlanság
hamiskodásait és az átmenetet, amelynek révén erény és bűn az
ellentétébe siklik át. Szét tudta választani az anya részét az apai
örökségtől a gyermek orcáján. Megvonta a finom határvonalat a
Szabadság és Végzet közt. Ismerte a megtorlás törvényeit, amelyek
a természet rendjének őrsége. S az emberi sors minden édessége s
minden borzalma oly éles, de egyszersmind oly enyhe körvonalakkal
jelentkezett lelki szeme előtt, mint valamely tájkép körvonalai. S
életbölcsessége kitörli tudatunkból a formájukat, azt, hogy
drámában, epikában nyilvánul-e? Mert eziránt éppannyi joggal
érdeklődhetnénk, mint az iránt, hogy a király üzenete micsodás
papiron vagyon megírva.
Shakespeare épp annyira kiválik a kitünő írók kategóriájából,
amennyire a tömegből kiválik. Ő megfoghatatlanul bölcs; azok
megfoghatóan bölcsek. Az elmélyedő olvasó bizonyos mértékben
befészkelheti magát Plato agyába s onnan kifelé gondolkozhat;
Shakespearevel ezt nem teheti. Bizony kívül maradna mindig.
Végrehajtó tehetség, teremtő erő tekintetében Shakespeare
páratlanul áll. Nincs ember, ki különbet tudna elképzelni.
Finomságban, lelki megérzésben elérte a végső határt, amellyel az
egyéniség még összefér s elérte az írásművészet lehetőségének
határait. Életbölcseségével egyenrangú képzelete és lírai ereje.
Meséi teremtményeit olyan mezbe és érzelmekbe öltöztette, hogy
azt a hitet kelti: ezek az emberek egy fedél alatt éltek vele s kevés,
valóban élt ember hagyott bennünk olyan es nyomot, mint ezek a
képzeleti alakok. S nyelvük éppoly édes, mint találó. Ám
Shakespearet képességei sohasem csábították el fitogtatásokra,
vagy arra, hogy mindig csak egy húrt pengessen. Mindenütt
jelenlévő emberiessége harmóniába rendezi minden tehetségét.
Mondass el valakivel bármely történetkét: legott kiderül a
pártossága, mert neki megvannak a maga megfigyelései,
véleményei, közhelyei, amelyek alkalomszerűleg érvényesítik
súlyukat s ő hajlandó lesz mindezeket napvilágra hozni. Kiemeli ezt
a részt, elnyomja amazt s nem az elbeszélendő tárgy
alkalmasságára, hanem csakis a saját alkalmasságának s erejének
fitogtatására van gondja. Ellenben Shakespearenek irásaiban
nincsenek modorosságai, kellemetlenkedő szólásmódjai, mindent
kellő helyen, kellőképpen ad elő. Nincsenek szeszélyei,
különködései: nem tehénfestő, nem madarak bolondja, nem
modoros specialista ő; nem süthetni rá önzést és önkényt. A nagyot
nagynak, a jelentéktelenebbet alárendeltnek festi. Bölcs anélkül,
hogy szavalna, vagy makacsul bizonykodnék. Erős, aminő a
Természet, amely erőfeszítés nélkül emeli a földet hegyekké,
ugyanazon törvény szerint, amely szerint buborékot fú a levegőben;
s egyiket éppoly szívesen teszi, mint a másikat. Ezért oly
egyenletesen hatalmas a bohózatban, a tragédiában, az
elbeszélésben, a szerelmi dalban. Ez adja meg neki azt a szüntelen
értéket, amelynél fogva minden olvasója azt véli, hogy másik olvasó
nem is értheti meg.
A kifejezésnek ez a tehetsége, amellyel a dolgok benső
valóságát zenébe és versbe tudja áttenni, Shakespearet a poéta
típusává avatja s új problémát szolgáltat a metafizikának. Ez teszi őt
a természettudomány tárgyává is, mint a Föld hatalmas
teremtményét, aki új korszakokat, új tökéletesüléseket jelez.
Költészete a dolgokat veszteség és túlzás nélkül tükrözi: a finom
dolgokat éppoly szabatossággal tudta festeni, mint a nagyokat egész
terjedelmükben; a tragikusat, komikusat pártatlanul torzítás és
kedvezés nélkül. Hatalmas tervét a legaprólékosabb részletekig
hajszálpontossággal hajtotta végre: egy-egy szempillát, vagy
ajkgödröcskét éppoly biztos kézzel rajzol meg, mint egy hegyet s
mindez, mint Természet műve, kiállja a napmikroszkóp vizsgálatát.
Fő-főpéldája annak, hogy mily közömbös dolog a több vagy
kevesebb termelés, több vagy kevesebb festmény. Elég az, hogy
neki megvan az ereje egy festményt alkotni. Daguerre rájött a
módjára, mint edzze be egy szál virág a képét az ő jódos-lemezére s
azután már kénye-kedve szerint ezerszámra fényképezhette a
tárgyakat. Tárgyak mindenkor léteztek, de hiányzott a művészi
visszaadásuk. De végre eléretett a teljes visszaadásuk s most hadd
üljenek a világ alakjai az arcukat leképező művésznek. Nincs arra
recipe, hogy kell valakiből Shakespearet csinálni, ámde annak a
lehetősége, hogy a dolgokat át lehet vinni versbe, dalba, az ő révén
teljes bebizonyítást nyert.
Lírájának hatalma az egész darab szellemében rejlik. Szonettjei,
bár kitünőségüket elhomályosítja a drámák ragyogása, éppoly
utánozhatatlanok, mint ezek s érdemüket nem egyes sorok adják
meg, hanem az egészük. Mint valamely páratlan egyéniség
hangjának zöngéje, olyan ezeknek a költői lényeknek a beszéde s
egyetlen mondatuk éppoly utánozhatatlan, mint az egész költemény.
Bár a darabok beszédei s egyes sorai olykor meghökkentenek
cikornyájukkal (euphuismus), mindazonáltal az illető mondás annyi
értelemmel van ellátva s úgy össze van kapcsolva elődeivel és
utódaival, hogy a logikus is kielégítve érzi magát. Eszközei éppoly
csodálatosak, mint céljai s még alárendeltebb kitalálásai is,
aminőkkel pl. akkor segít magán, amidőn látszólag kibékíthetetlen
ellentéteket kell összeházasítania, merő költemények. Ő sohasem
kénytelen leszállni és gyalogszerrel menni az okból, hogy lova
elfutott vele bizonyos távoli irányba: ő mindig a nyeregben marad.
A leglégiesebb költészet is először élmény volt: ám a gondolat
átalakulást szenvedett, amióta élmény volt. Művelt emberek gyakran
nagyfokú ügyességre tesznek szert a versírásban; ámde
verssoraikon át könnyű kiolvasni személyes történetüket; aki a
feleket ismeri, meg is tud nevezni minden alakot: ez itt András, az ott
Rákhel. S így az egésznek értelme prózai marad. Csak szárnyas
hernyó, de nem pillangó. Ellenben az igazi költő lelkében az
esemény, az adottság egészen átalakult új eszmévé és lehámlott
róla a régi bőre. Ez a nemesedés Shakespeare főjelessége.
Festményei, igazsága és tökéletessége láttára azt kell mondanunk:
ez aztán tudja könyv nélkül a leckéjét! Pedig képeiben nyoma sincs
a maga személye előtérbe tolásának.
Egy még királyibb vonás tünteti ki a költőt. Nyájasságát értem,
amely nélkül nincs költő, – mert szépség a célja. Szereti az erényt,
nem kötelességből, hanem mert bájos; gyönyörködik a világban,
férfiben, nőben azért a kedves fényért, amely belőlük kisugárzik. A
szépséget, az öröm és derű szellemét árasztja a mindenségre.
Epikuros mondja, hogy a költészet olyan csábító, hogy a szerelmes
kész elhagyni érte a kedvesét. Az igazi lantosokat mindenha szelid
és kedves temperamentumuk tüntette ki. Homerost verőfényben
látjuk; Chaucer vidám és emelt fejű; Szádi pedig ezt mondja:
«Bűnbánó híremet költötték; de hát mi közöm nekem a
bűnbánathoz?» Nem kevésbé felséges és vidám, sőt még sokkal
felségesebb és vidámabb a Shakespeare hangja. Már puszta neve
is örömet és fölszabadulást sugall az emberszívnek. Ha történetesen
bárhol megjelenne, az emberi lelkek társaságában, vajjon ki ne
szegődnék zászlaja alá? Amit csak megérint, annak egészséget és
hosszú életet kölcsönöz verőfényes stílusával.
De íme, hogy áll ennek a lantosnak és jótévőnek emberi
számadása, ha magánosságunkban, elzárva fülünket az ő hírének
hullámverésétől, megpróbáljuk megállapítani mérlegének
egyenlegét? A magánosság rideg leckékkel szolgál; megtanít
ellennünk hősök és költők nélkül; latra teszi Shakespearet is és azt
találja, hogy bizony ő is osztozik az emberi nem felemás voltában és
tökéletlenségében.
Shakespeare, Homeros, Dante, Chaucer mind látták a
fényességet, amely sugaraival beragyogja a látható világot; tudták,
hogy a fa másra is való, mint hogy almát teremjen, a búza másra is
való, mint hogy eledelül szolgáljon, a föld másra is, minthogy
fölszántsák és utakkal lássák el: mert mindezek a dolgok második és
szebb aratást érlelnek a lélekben, amidőn eszméi jelképeiül és
természetrajzunkban néma kommentárul szolgálnak az emberi
életnek. Shakespeare színekül használta föl őket festményei
számára. Megmaradt szépségük mellett és sohasem tette meg a
lépést, amely pedig elkerülhetetlennek látszott ekkora géniusz
számára, hogy t. i. kikutassa s kifejezze mily igazi jelentőség rejlik
ezekben a jelképekben s árasztja hatalmát; mit is mondanak
tulajdonképpen? Ő az elemeket, mik csak parancsszavát lesték,
mulatsággá változtatta. Ő az emberiség spektákulumainak
főrendezője.29) Nem olyannak látjuk-e, akinek a tudás fenséges
hatalma a kezébe adta a csillagokat, a bolygókat és holdjaikat s
leszedi őket pályájukról, hogy valamely ünnepnapon városi
tűzijátékot rendezzen velük s városszerte hirdetik: «Ma este láthatók
a pyrotechnika valóságos csodái!» Avagy a Természet ható erői s az
őket felfogó értelem nem érnének meg többet, mint egy utcai
fáklyászenét vagy egy szivar füstjét? Eszünkbe idézi a Korán
harsona-szövegét: «Az egek és a föld s mindaz, ami közöttük
vagyon – azt hiszitek, hogy tréfából teremtettük?»
Tehetségre, az ész hatalmára az embervilág nem tud vele
összemérhetőt fölmutatni. Ám ha az élet, az anyaga és
segédforrásai kerülnek szóba, mit használ ő nékünk? Mit jelent az
élet? Csak: Vízkeresztet, Szent Ivánéji Álmot, Téli Regét? S egyéb
képei jelentenek-e többet? Eszünkbe jut a Shakespeare Society
egyptusi ítélete: hogy ő jókedvű színész és színigazgató volt. De ezt
a tényt nem tudom összepárosítani a költészetével. Más, csodás
emberek életünkbe valahogy belevitték eszméiket, de ez a nagy
ember szöges ellentétet árul el élete és eszméi közt. Lett légyen bár
kevesebb, ne érte volna el csupán a nagy írók középmértékét, mint
Bacon, Milton, Tasso, Cervantes, bízvást otthagyhatnók ezt a tényt
az emberi sors kétes félhomályában; de hogy ez az emberebb
ember, aki az emberi tudásnak sohasem ismert új és kitágított
látóhatárt nyitott, aki az emberiség lobogóját mérföldekkel plántálta
előbbre a Chaosba – hogy ne rejtse bölcseségét tulajdon vékája alá
– hogy a világ legkitünőbb költője az ismeretlenség szürkeségébe
rejtőző, világias és köznapi életet élt, aki lángelméjét nyilvános
szórakoztató eszközül használta: ezt a szomorú tényt a
világtörténelemnek is le kell szegeznie!
De hát viszont más emberek, papok és próféták – izraeliták,
germánok és svédek – ugyanezeket a dolgokat tették szemlélődésük
tárgyává, sőt keresztül is láttak rajtuk és tudták, mi a hatalmuk. S
mivégre? A szépségük nyomban tovatűnt szemünk elől;
parancsokat, hegysúlyosságú föltétlen kötelességeket olvastak ki
belőlük, hegyek oszlopain emelkedő s rájuk szakadó komor
kötelességeket. És az élet rémítő, örömtelen valami lett révükön:
«zarándokút»,30) próbatét, miket köröskörül ostromolnak gyászos
históriák Ádám és Éva elestéről s a róluk ránk szakadó átokról; mik
utolsó ítéletet, tisztító tüzeket s a bűnhödés lángjait tűzik elénk s a
látnok szíve és a hallgató szíve elmerült e szomorú viziókban.
El kell ismerni, hogy ezek félemberek félszemmel látásai. A világ
még várja a költő-papot, a kibékítőt, aki nem tréfál a színész-
Shakespeare-rel, sem nem vájkál a sírokban a gyászoló
Swedenborggal; hanem a ki majdan egyaránt lelkesen lát, beszél és
cselekszik. Mert a tudás ragyogóbbá teszi majd a verőfényt: az
igazság szebb, mint az egyéni vonzalom és a szeretet összefér a
mindeneket átfogó bölcseséggel.
VII.

NAPOLEON; VAGY: A VILÁG


EMBERE.

A XIX. század kimagasló egyéniségei közt nincs senki, aki


annyira ismert és hatalmas volna, mint Bonaparte. Ezt a fölényét
annak köszönheti, hogy a leghívebben fejezi ki a tevékeny és
kiművelt emberek tömegének eszméit, hitét, törekvéseit.
Swedenborg tanította, hogy minden szerv homogén részecskékből
tevődik össze, vagy – mint néha így mondja – minden egész hasonló
részekből; így a tüdők végtelen sok apró tüdőcskéből; a máj
végtelen sok apró májacskából, a vese végtelen sok apró
vesécskéből stb. Eszerint az analógia szerint tehát, ha fölbukkan a
férfiú, aki magával tudja ragadni a nagy tömegek erejét és
vonzalmát, ha Napoleon: Franciaország, ha Napoleon: Európa, – ez
azért van, mert a népek, kiket kormányoz, mind apróka Napoleonok!
A mi társadalmunkban állandó az ellentét a konzervativ és
demokrata osztályok közt; azok között, akik már megvagyonosodtak
és a fiatalok és szegények között, akiknek még ezentúl kell
megcsinálni a szerencséjüket; azaz oly kezek munkája közt,
amelyek már régóta el vannak temetve, s amelyek munkája be van
temetve henye tőkések tulajdonába, pénzbe, részvényekbe, földbe,
épületekbe és az élő munka érdekei közt, amely azon iparkodik,
hogy ő maga kerüljön a föld, az épületek, a pénztőkék birtokába. Az
előbbi osztály félénk, önző, illiberális, nem szereti az újításokat és
állandóan veszíti tagjait halálozás következtében. A másik osztály is
önző, de azonkívül követelőző, merész, magabíró, számban mindig
fölülmúlja a másikat s a szapora születések révén minden órában új
tagokkal egészül ki. Azt kívánja, hogy minden jövedelem nyitva álljon
az összesség versenyének és hogy a jövedelemszerzési
lehetőségek szaporíttassanak. Az a dolgos emberek osztálya
Amerikában, Angliában, Franciaországban, egész Európában: az
iparkodók és hozzáértők osztálya. Napoleon a képviselőjük. A
tevékeny, bátor, ügyes embereknek – minden nemzet
középosztályának – ösztöne csúcsosította ki Napoleont, mint a
megtestesült demokratát. Ő osztozik erényeikben, bűneikben s
mindenekfölött: osztozik szellemükben, törekvéseikben. Ez az
irányzat anyagi, érzékelhető diadalra célzó s a leggazdagabb és
legváltozatosabb eszközökkel él, hogy célt érjen. Egyaránt használ
föl mechanikai erőket, mint igen magas értelmiséget, széleskörű,
pontos tudományt, képességeket, de minden értelmi és lelki erőt is
alárendel az anyagi siker eszközeinek. A gazdagság: a főcél.
A Korán mondja: «Az Isten minden népnek megadta az ő
nyelvén beszélő prófétáját.» Tehát kell, hogy Páris, London, New-
York, a kereskedelem, a tőke, az anyagi hatalom lelke is megkapta
légyen a maga prófétáját: s íme Bonaparte nyert erre képesítést és
küldetést.
A Napoleonról szóló életrajzok, memoárok, adomák millió
olvasóinak mindegyike gyönyörködik ezeken a lapokon: hiszen a
tulajdon történetét tanulmányozza. Napoleon ízig-vérig modern s
szerencséje tetőpontján ugyanaz a szellem tölti el, mint a mai
hírlapokat. Ő nem szent, – hogy saját szavaival éljünk: «nem
kapucinus» – de a szót magas értelmében véve: nem is hős. Az utca
embere megtalálja benne az utca többi emberének képességeit és
erőit. Úgy találja, hogy Napoleon is – csakúgy, mint ő – születésénél
fogva városi ember, aki nagyon észrevehető érdemeknél fogva olyan
parancsoló állásba jutott, hogy megengedhetné magának a
közönséges ember ízlését is, de mégis úgy érzi, kénytelen azt
rejtegetni és megtagadni. S íme ez a hatalmas ember megszerezte
mindazt, ami a XIX. század minden embere szívének kedves: jó
társaság, jó könyv, gyors utazás, jó ruha, lakomák, számtalan
szolgahad; személyes súly, eszméinek megvalósítása; a jótévő
szerepe környezete minden tagjával szemben; a képek, szobrok,
zene, paloták, konvencionális tiszteletadás kifinomult gyönyöre:
mindez az övé volt.
Ám az olyan ember, aki, – miként Napoleon – annyira
alkalmazkodik a tömegek lelkéhez, akik közt él: már nem is
képviselője, hanem egyenesen monopolizálója s bitorlója a többi
lelkeknek. Így plagizált Mirabeau minden jó eszmét, minden jó szót,
amit valaha elejtettek Franciaországban. Dumont beszéli, hogy a
Convent karzatáról hallotta szónokolni Mirabeaut s neki az az ötlete
támadt, hogy befejezést készít a beszédhez; ezt ceruzával rögtön
meg is írta s megmutatta a mellette ülő Lord Elginnek. Tetszett a
lordnak s Dumont este megmutatta Mirabeaunak. Ez elolvasta,
bámulatosnak találta s kijelentette, hogy bekebelezi másnapi
beszédébe a nemzetgyűlésen. «Csakhogy ez nem lehet, – viszonzá
Dumont – mert, sajnos, már megmutattam lord Elginnek.» «S ha
meg is mutatta lord Elginnek s kívüle akár ötven másnak is, mégis
elmondom holnap», – felelte Mirabeau s a másnapi ülésen
csakugyan elmondta, még pedig nagy hatással. Mert Mirabeau az ő
mindenkit lebiró nagy egyéniségével megérezte, hogy ezek a
dolgok, miket ő sugallt a jelenlétével, éppúgy az övéi, mintha ő
mondotta volna s hogy tulajdonképpeni súlyukat azzal kapják meg,
hogy ő tette magáévá. De még föltétlenebb és központosítóbb volt
az, aki örökölte Mirabeau népszerűségét és még sokkal többet ért el,
mint Franciaországban gyakorolt fölényét. Valóban, a Napoleon-
veretű embernek többnyire nincs is már magánvéleménye és egyéni
beszéde. Annyira befogadó képességű s olyan helyzetű, hogy a kor
és föld értelmiségének, szellemességének, hatalmának valóságos
központi hivatalává válik. Ő nyeri meg a csatát, ő csinálja a Code-ot,
ő állítja föl a súly- és mértékrendszert, ő tünteti el az Alpok
akadályait; ő építi az utakat. Minden kiváló mérnök, tudós,
államférfiú neki tesz jelentést; ugyanezt cselekszi mindenfajta jó fő: s
ő elsajátítja a legjobb rendszabályokat s a maga bélyegzőjét süti
rájuk, de nemcsak ezekre, hanem minden szerencsés és
emlékezetreméltó kifejezésre is. Imigyen minden napoleoni mondás
és minden sor napoleoni írás tulajdonképpen Franciaországé.
Bonaparte a tömeg bálványa volt, mert benne transcendens
fokban vannak meg a tömeg-ember tulajdonságai és erői. Bizonyos
elégtételt érzünk, ha leszállhatunk a politika mélyére, mert ezzel
megszabadulunk a képmutatástól. Bonaparte a nagy osztállyal
közösen, amelynek képviselője volt, törekedett hatalomra és
gazdagságra, de Bonaparte különösen nem válogatott az
eszközökben. Elnyomott minden érzést, amely az embereket e
törekvésükben akadályozni szokta. Fontanes 1804-ben Napoleon
tulajdon szellemében szólt, amikor a szenátus tárgyában e szavakat
intézte hozzá: «Sire! A tökéletesülés vágya a legnagyobb kórság,
amely az emberi értelmet valaha megszállta.» A szabadság, haladás
szószólói «ideológusok», ami megvető értelemben gyakran
megfordul a száján: «Necker ideológus», «Lafayette ideológus!»
Egy jól ismert olasz közmondás szerint: «Ha sikert akarsz aratni,
nem szabad túljónak lenned!» Bizonyos határok közt előnyös
lemondani a kegyelet, hála, nemeslelkűség uralmáról, mert ezentúl
az, ami eleddig áthághatlan korlátunk volt s mások számára még
mindig korlát, alkalmas fegyverré lesz céljaink számára, éppúgy,
amint a folyót, mely félelmetes akadály volt, a tél a legsímább úttá
változtatja.
Napoleon egyszersmindenkorra letett a gyöngéd érzésekről és
szeretetről s csak kezével s fejével akart boldogulni. Benne nincs
semmi csoda, semmi bűvészet. Ő egyszerűen: munkás; munkás
ércben, vasban, fában, földben, utakban, épületekben, pénzben,
csapatokban; még pedig nagyon szívós és okos mester-munkás. Ő
sohasem gyönge és elméleti ember, hanem a természeti ható erők
pontosságával és szabatosságával cselekszik. Nem vesztette el
veleszületett eredeti érzékét és rokonságát a dolgok iránt. Az
emberek az ilyen egyénnek éppúgy kitérnek, mint a természeti
eseményeknek. Igaz, hogy találkozunk sok emberrel, aki elmélyedt a
dolgokba mint mezőgazda, kovács, hajós és általában mint
technikus s tudjuk, mily reálisaknak és határozottaknak mutatkoznak
tudósok és szórágók gyülekezetében: ámde ezek az emberek
rendesen híjával vannak az elrendezés tehetségének; olyanok, mint
a kezek fej nélkül. Ám Bonaparte ez ásványi és állati erőkön felül a
magasabb belátás és általánosítás képességeivel is meg volt áldva,
úgyhogy azok az emberek társulva látták benne a természeti és
szellemi erőket, mintha a tenger és föld testet öltött volna s elkezdett
volna számítani. Ennélfogva a föld és tenger mintha föltételeznék őt.
A sajátjába jött ő és tenger és föld úgy is fogadták őt. Ez a számító-
cselekvő nagyon jól tudja, mit tegyen velük s mi lesz az eredmény.
Ismeri az arany és vas, a kerekek és hajók, a seregek és diplomaták
sajátságait s megkövetelte, hogy mindegyik a maga neme szerint
cselekedjék.
Arithmetikáját a hadviselés művészetében fejtette ki. Ez, szerinte,
abban áll, hogy, háborúskodván, legyen mindig több erőnk, mint az
ellenségnek, azon a ponton, ahol az ellenséget támadjuk, vagy ahol
ő támad. S egész tehetsége arra irányzódik, hogy végnélküli
mozdulatok, átcsoportosítások révén mindig szögben menjen neki
az ellenségnek és hogy részletekben morzsolja föl erőit. Nyilvánvaló,
hogy még igen kis erő is, amely ügyesen és gyorsan mesterkedik és
mozog, úgyhogy a támadás helyén mindig két embert tud harcba
dobni egy ellen, lebír egy sokkal nagyobb ellenséges túlerőt is.
Az idők, szervezete, előélete mind társultak, hogy kifejlesszék ezt
a minta-demokratát. Megvannak benne osztálya erényei és hatásos
érvényesülésük föltételei. Ez a józanész, amely nem vesz semmibe
valamely célt, mielőtt nem látja az eszközöket, amikkel végre is lehet
hajtani; az eszközök fölhasználásának gyönyöre; az eszközök
kiválogatása, egyszerűsítése, csoportosítása; munkájának
határozottsága és alapossága; az okosság, amellyel mindent lát és
az eleven erő, amellyel mindent megtesz: mindez természetes
szervévé és fejévé tette őt annak, amit szeretnék a szó legtágabb
értelmében vett modern pártnak nevezni.
Minden sikerben az oroszlánrész szükségszerűleg a Természetet
illeti meg; így az ő esetében is. Ilyen emberre volt szükség, tehát
ilyen ember született. Kőből, vasból való ember, aki nyeregben tudott
ülni tizenhat, tizenhét órahosszat, sok napig tudott menetelni
pihenés és élelem nélkül – legfeljebb egy harapást befalva – s mégis
a bősz tigris rugalmasságával és hevével verekedni; akit nem zavart
meg soha semmiféle aggodalmaskodás; szívós, önző, okos s oly
fölfogású, hogy nem hagyta meggyőződését befolyásolni vagy
félrevezetni sem mások véleményétől, sem babonáitól, sem tulajdon
elhamarkodásától és hevétől. «Az én vaskezem – mondá – nem a
karom végén volt, hanem a fejemmel állott közvetlen
összeköttetésben.» Tekintetbe vette a Természet és Szerencse
hatalmát és ezeknek tulajdonította fölényét, ahelyett, hogy
alacsonyabbrendűek módjára önfejűségében bizakodva harcra kelt
volna a Természettel. Legkedvesebb szavajárása a «csillagára» való
célzás s tetszelgett azzal, magának s a népnek is, hogy a «Sors
gyermeké»-nek hívta magát. «Nagy bűntettek elkövetésével
vádolnak – mondja – pedig az olyan vezető emberek, aminő én
vagyok, nem követnek el bűntetteket. Mi sincs egyszerűbb az én
emelkedésemnél: hiú törekvés azt cselszövésnek, gaztetteknek
tulajdonítani: egyszerűen az idők sajátságának s annak a híremnek
kell betudni, hogy sikerrel verekedtem hazám ellenségeivel. Én
mindig a nagy tömegek véleményével s az eseményekkel tartottam
lépést. Mi hasznomra lettek volna tehát nékem gaztettek?» Majd
ismét, fiáról szólván, ezt mondja: «Fiam nem helyettesíthet engem;
magam sem tudom magam helyettesíteni. Engem a körülmények
teremtettek.»
A cselekvés egyenesvonalúsága eladdig még sohasem párosult
ekkora fölfogóképességgel. Ő realista, réme minden fecsegőnek és
az igazságot elhomályosító zavarosfejűeknek. Ő meglátja minden
dolog sarkpontját, pontosan az ellentállás pontjára veti magát és
félredob minden egyéb megfontolást. Erős akaratú, de helyes
értelemben, tudniillik: erősakaratú belátással együtt. Ő sohasem
hibázott rá egy-egy győzelemre, hanem fejben megnyerte a csatát,
mielőtt a harctéren megnyerte volna. Főfő-mesterfogásai benne
rejlenek. Senki mástól nem kér tanácsot. 1796-ban ezt írja a
Direktoriumnak: «Magam vezettem a hadjáratot, anélkül, hogy valaki
tanácsával éltem volna. Semmi jót nem végeztem volna, ha
kénytelen lettem volna más valaki véleményéhez alkalmazkodni.
Előnyökre tettem szert túlerőkkel szemben olyankor is, amikor
minden nélkül állottam csak azért, mert abban a meggyőződésben,
hogy Önök bíznak bennem, cselekedeteim éppoly gyorsak voltak,
mint gondolataim.»
A történelem tele van, a legrégibb időktől napjainkig, a királyok és
kormányzók gyengeségével. Olyan személyek ők, akiket szánni kell
mert nem tudják, mit kell tenniök. A takácsok kenyérért sztrájkolnak,
s a királyok és minisztereik – nem tudván, mihez fogjanak –
szuronyokat szegeztetnek rájuk. Ám Napoleon értett a maga
mesterségét. Ime egy ember, aki minden percben és alkalommal
tudta, mit kell tennie a következőben. Roppant megnyugtató és üdítő
látvány nemcsak királyoknak, hanem polgároknak is. Kevés ember
ismeri a másnapját; terv nélkül tengődnek máról-holnapra s mindig
végére érnek tudományuknak s minden tettük után kívülről várják az
indítékot új cselekvésükre. Napoleon a világ első embere lett volna,
ha célja történetesen merőben közcélok. Azonban így is amilyen
volt, bizalmat gerjeszt cselekvésének rendkívüli egysége által.
Szilárd, biztos, önmegtagadó, önmagát hátratevő, mindent céljának
áldozó; föláldoz pénzt, csapatokat, tábornokokat föláldozza saját
biztonságát céljainak s ami közönséges kalandorokat el szokott
szédíteni, őt nem vezeti félre saját eszközeinek ragyogása.
«Esélyeknek nem szabad a politikát vezetniök, ellenben a
politikának kell az esélyeket vezetniök.» – «Ha valakit minden
esemény elragad, az annak a jele, hogy egyáltalában nincs politikai
rendszere.» Győzelmei megannyi kapu volt s egy percre sem
tévesztette szem elől a még megteendő utat, a jelen körülményeinek
vakító csillámlásában vagy süketítő lármájában. Tudta, mit kell
tennie s meg sem állott, míg végére nem járt. Még az egyenes
vonalat is szerette volna megrövidíteni, hogy gyorsabban jusson
céljához. Kétségkívül lehet borzalmas adatokat összegyűjteni
történetéből, mily áron vásárolta meg győzelmeit; de azért nem kell
kegyetlennek ócsárolni, csak olyannak kell tekinteni, aki nem ismert
akadályt akarata útjában; nem volt vérszomjas, nem volt kegyetlen,
de jaj annak a dolognak vagy embernek, aki útjában állott! Nem
szomjúhozta a vért, de nem kímélte a vért – s nem ismert
könyörületet. Csak a célt látta s az akadálynak pusztulnia kellett.
«Sire! Clarke tábornok nem tud Junot tábornokkal egyesülni az
osztrák tüzérség borzasztó tüzelése miatt.» – «Foglalja el rohammal
azokat az ütegeket!» – «De Sire! Minden ezred, amely közeledik a
tüzelő üteghez, veszve van; mit parancsol, Sire?» – «Előre! Előre!»
– Serusier tüzérezredes Hadi emlékirataiban következőleg vázolja

You might also like