Numeric Computation and Statistical Data Analysis On The Java Platform Advanced Information and Knowledge Processing Chekanov Sergei V
Numeric Computation and Statistical Data Analysis On The Java Platform Advanced Information and Knowledge Processing Chekanov Sergei V
com
https://textbookfull.com/product/poststructural-policy-analysis-a-
guide-to-practice-1st-edition-carol-bacchi/
textbookfull.com
Textbook of Clinical Otolaryngology Abdulsalam Al-Qahtani
(Editor)
https://textbookfull.com/product/textbook-of-clinical-otolaryngology-
abdulsalam-al-qahtani-editor/
textbookfull.com
https://textbookfull.com/product/the-language-of-medicine-11th-
edition-davi-ellen-chabner/
textbookfull.com
https://textbookfull.com/product/pakistan-s-inter-services-
intelligence-directorate-covert-action-and-internal-operations-1st-
edition-owen-l-sirrs/
textbookfull.com
https://textbookfull.com/product/mammal-tracks-sign-a-guide-to-north-
american-species-2nd-edition-elbroch/
textbookfull.com
Continuous EEG Monitoring Principles and Practice 1st
Edition Aatif M. Husain
https://textbookfull.com/product/continuous-eeg-monitoring-principles-
and-practice-1st-edition-aatif-m-husain/
textbookfull.com
Advanced Information and Knowledge Processing
Sergei V. Chekanov
Numeric
Computation and
Statistical Data
Analysis on the
Java Platform
Advanced Information and Knowledge
Processing
Series editors
Lakhmi C. Jain
Bournemouth University, Poole, UK and
University of South Australia, Adelaide, Australia
Xindong Wu
University of Vermont
Information systems and intelligent knowledge processing are playing an increasing
role in business, science and technology. Recently, advanced information systems
have evolved to facilitate the co-evolution of human and information networks
within communities. These advanced information systems use various paradigms
including artificial intelligence, knowledge management, and neural science as well
as conventional information processing paradigms. The aim of this series is to
publish books on new designs and applications of advanced information and
knowledge processing paradigms in areas including but not limited to aviation,
business, security, education, engineering, health, management, and science. Books
in the series should have a strong focus on information processing—preferably
combined with, or extended by, new results from adjacent sciences. Proposals for
research monographs, reference books, coherently integrated multi-author edited
books, and handbooks will be considered for the series and each proposal will be
reviewed by the Series Editors, with additional reviews from the editorial board and
independent reviewers where appropriate. Titles published within the Advanced
Information and Knowledge Processing series are included in Thomson Reuters’
Book Citation Index.
Numeric Computation
and Statistical Data Analysis
on the Java Platform
123
Sergei V. Chekanov
HEP Division
Argonne National Laboratory
Lemont, IL
USA
Numerical and statistical algorithms are typically confined within a specific pro-
gramming language. For example, the R open-source data-analysis software uses a
specialized scripting language, which is an implementation of the “S” programming
language. Many commercial mathematical programs follow this trend. This book is
about a platform for statistical calculations using algorithms that are not confined by
a chosen language. For example, this platform allows mixing Python and Java
numerical libraries, or using them on their own. Or, one can use this book to
program statistical code using other languages, such as Groovy, Ruby, and
BeanShell. This book is about an approach to scientific programming and visual-
ization that does not set strict requirements on specific programming languages, nor
on operating systems where such calculations are performed.
There are many books written about Java—one of the most popular program-
ming languages. There are many books written about Python, which is another very
popular programming language. This book explains how to mix them, bringing
incredible algorithmic power and cutting-edge numeric libraries to scientific com-
putations and data visualization.
In this book I did not go deep inside particular scientific research area, since the
aim was to give concrete examples which illustrate which Java libraries should be
used to perform computations. In the cases when I could not cover the subject in
detail, a sufficient number of relevant references was given, so the reader can easily
find necessary information for each chapter using external sources.
Thus this book presents practical approaches to numerical computations, data
analysis, and knowledge discovery, focusing on programming techniques. Each
chapter describes the conceptual underpinning for numerical and statistical calcu-
lations using Java libraries, covering many aspects from simple multidimensional
arrays and histograms to clustering analysis, curve fitting, neural networks, and
symbolic calculations. To make the examples as simple as possible from the
computational point of view, I fully embrace the scripting approach in the course of
this book. This leads to short and clear analysis codes, so you could concentrate on
the logic of analysis flow rather than on language-specific details.
vii
viii Preface
This book uses Python as the main programming language, since it is elegant and
easy to learn. It is a great language for teaching scientific computation. For devel-
opers, this is an ideal language for fast prototyping and debugging. The book dis-
cusses how to design code snippets for numeric computation and statistics on the
Java platform. To be more exact, we will use Jython (Python implemented in Java), a
language that uses not only native Python modules, but can also access very com-
prehensive Java classes. The reader will learn how to write analysis codes, while
numerous code snippets will give you some ideas on numeric algorithms which can
easily be incorporated into realistic research application. The book includes more
than 300 code snippets to produce data-visualization plots in 2D and 3D.
I am almost convinced myself that this book is self-contained and does not
depend on detailed knowledge of computing language, although knowledge of
Python and Java is desirable. However, the reader may still need some programming
background in order to use this book with other languages, such as Groovy,
BeanShell, and Ruby, since I did not give very detailed coverage of these languages.
This book is intended for general audiences, for those who use computing to make
sense of data surrounding us. It can be used as a source of knowledge on data
analysis and statistical calculations for students and professionals of all disciplines.
This book was written for undergraduate and graduate students, academics, pro-
fessors, and professionals of any field and any age. The book could be used as a
textbook for students.
We also hope that this book will be useful for those who study financial markets,
since the numeric algorithms discussed in this book are undoubtedly common to any
knowledge discovery research. This book equips readers with the description of a
computational platform for statistical calculations which can be viewed as an inex-
pensive alternative to costly commercial products used by financial-market analysts.
I assume the readers are not familiar with Python/Jython, the main programming
language used for code snippets in this book. But some basic understanding of
statistics and mathematics would be very helpful to understand the material of this
book.
All example codes of this book can easily be transformed to Java, Groovy,
Ruby/JRuby, or BeanShell codes. You are presumed to have knowledge of pro-
gramming in Java, if you will choose the path of moving the examples to Java, or if
you will decide to create Java libraries to be deployed as jar files for a new project.
The book will discuss how to do this, and a few Java examples will be provided.
Transformations of the example snippets to scripting languages, such as Groovy,
Ruby/JRuby, or BeanShell, may require some knowledge of these scripting
languages. The good thing is that the analysis algorithms and numerical libraries
will be exactly the same, so a little effort is required to move to other languages.
Again, we will show you how to convert Jython codes to these languages. In most
Preface ix
cases, our examples should be sufficient to get started with a new language. The
more knowledge about Groovy and Ruby/JRuby you can bring, the more you will
get out of this book.
References
This book describes a software which is a collective work of many developers who
have dedicated themselves to scientific computing. The author is grateful to all
people who contributed to scientific software, and for their inspiration and dedi-
cation to science and knowledge-discovery software.
Many numeric and graphic libraries discussed in this book were released as
open-source projects. I am grateful to the authors of such open-source programs for
their enthusiasm to share their work, and for making their software publicly
available.
You can find a list of contributions to the software packages described in this
book on the jWork.ORG web page (http://jwork.org/dmelt/). A special note of
thanks to those of you who reported bugs in a constructive way, helped with
solutions, and shared your knowledge and experience with others.
Much of this project grew out of fruitful collaboration with many of my col-
leagues who devoted themselves to high energy physics. Over the course of the past
twenty-five years I have learned a lot about programming aspects of scientific
research. I would like to thank my colleagues for checking and debugging the
examples shown in this book, and here the list will be endless.
I would like to thank everyone at Springer for their help with the production
process. In particular, managing editors H. Desmond and J. Robinson, who helped
start this book in its present form.
Not least, personal thanks go to my dear wife, Tania, and my sons, Alexey
(Alosha) and Roman, for their love and patience to a husband and father who was
only half (mentally) present after coming from his work. Without their patience and
understanding, this book would not have been possible. Finally, I also thank my
parents and sister for their support of my interests in all aspects of science.
xi
Visit https://textbookfull.com
now to explore a rich
collection of eBooks, textbook
and enjoy exciting offers!
Contents
xiii
xiv Contents
2 Introduction to Jython . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.1 Code Structure and Jython Objects . . . . . . . . . . . . . . . . . . . 27
2.1.1 Numbers as Objects . . . . . . . . . . . . . . . . . . . . . . 30
2.1.2 Formatted Output . . . . . . . . . . . . . . . . . . . . . . . . 32
2.1.3 Mathematical Functions . . . . . . . . . . . . . . . . . . . . 32
2.2 Complex Numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.3 Strings as Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.4 Import Statements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.4.1 Executing Native Applications . . . . . . . . . . . . . . . 37
2.5 Comparison Tests and Loops . . . . . . . . . . . . . . . . . . . . . . . 38
2.5.1 The “if-else” Statement . . . . . . . . . . . . . . . . . . . . 38
2.5.2 Loops. The “for” Statement . . . . . . . . . . . . . . . . . 39
2.5.3 The “continue” and “break” Statements . . . . . . . . . 39
2.5.4 Loops. The “while” Statement . . . . . . . . . . . . . . . 40
2.6 Collections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2.6.1 Lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2.6.2 Tuples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
2.6.3 Dictionaries . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
2.6.4 Functional Programming . . . . . . . . . . . . . . . . . . . 48
2.7 Java Collections in Jython . . . . . . . . . . . . . . . . . . . . . . . . . 50
2.7.1 List. An Ordered Collection . . . . . . . . . . . . . . . . . 50
2.7.2 Set. A Collection Without Duplicate Elements . . . . 53
2.7.3 SortedSet. Sorted Unique Elements . . . . . . . . . . . . 54
2.7.4 Map. Mapping Keys to Values . . . . . . . . . . . . . . . 55
2.7.5 Java Map with Sorted Elements . . . . . . . . . . . . . . 55
2.7.6 Real-Life Example: Sorting and Removing
Duplicates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
2.8 Random Numbers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
2.9 Time Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
2.9.1 Benchmarking . . . . . . . . . . . . . . . . . . . . . . . . . . 59
2.10 Python Functions and Modules. . . . . . . . . . . . . . . . . . . . . . 60
2.11 Python Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
2.11.1 Initializing a Class . . . . . . . . . . . . . . . . . . . . . . . 65
2.11.2 Classes Inherited from Other Classes. . . . . . . . . . . 65
2.11.3 Java Classes in Jython . . . . . . . . . . . . . . . . . . . . . 66
2.11.4 Not Covered Topics . . . . . . . . . . . . . . . . . . . . . . 66
2.12 Parallel Computing and Threads . . . . . . . . . . . . . . . . . . . . . 67
2.13 Arrays in Jython. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
2.13.1 Array Conversion and Transformations . . . . . . . . . 69
2.13.2 Performance Issues . . . . . . . . . . . . . . . . . . . . . . . 69
2.13.3 Used Memory . . . . . . . . . . . . . . . . . . . . . . . . . . 70
2.14 Exceptions in Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Contents xv
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 615
Conventions and Acronyms
This book uses the following typographical convention: A box with a code inside
usually means interactive Python/Jython commands typed in the “Jython Shell.” All
such commands start with the symbol [[[ which is the usual invitation in
Python to type a command. This is shown in the example below:
Working interactively with the Jython prompt has the drawback that it is
impossible to save typed commands. In most cases, the code snippets are not so
short, although they are still much shorter than in any other programming language.
Therefore, it is desirable to save the typed code in a file for further modification and
execution. In this case, we use Jython macro files, i.e., we write a code using the
DMelt (or any other) editor [15], save it in a file with the extension “.py”, and run it
using the keyboard shortcut [F8] or the button “run” from the DMelt tool bar
menu. Such code examples are also shown inside the box, but code lines do not
start with the Python invitation symbol [[[ . In such situations, the example
codes will be shown as:
For examples written in the Python language, double quotes and apostrophe are
interchangeable. For Java and other languages, this is not the case. So, to make our
code to be easily convertible to Java or Groovy, we will use double quotes around
strings. As in the above example, we will try to comment code lines as much as we
can. For Python, comments are preceded by the hash character.
If a code snippet is used as a Python/Jython module by other programs, then we
should write our code inside a file. A Python code always imports an external
module using its file name. Since the file names are important, we will indicate
exactly which file name should be used under the box with a code. For example, if a
program code is considered a module that has to be imported by another code
example, we will show it as:
xxv
xxvi Conventions and Acronyms
imports the file “hello.py” and executes it, printing the string. In other cases, we
will use arbitrary file names for the code snippets.
We use typewriter font for Jython and Java classes and methods. For file
names and directories, we also use the same font style with additional parentheses.
We remind that the directory name separators are backward slashes for
Windows, and slashes for Linux and Mac computers. For example, the directory
with examples will be shown as:
macro/examples/
For Windows computers, the same directory should be shown as:
macro\examples\
The dots in this example are used to indicate the upper-level directory.
We will try to avoid using abbreviations. When we use abbreviations, we will
explain their meaning directly in the text. When space allows, we will use mean-
ingful names for variables. This is all.
Chapter 1
Java Computational Platform
1.1 Introduction
Java is both a programming language and a computing platform which runs Java
code. This book uses both. But the Java programming language is not necessary
for the approach adopted in this book, since the Java platform allows the usage of
scripting languages, such as Jython/Python, Groovy, Ruby/JRuby, BeanShell, and
others.
The heart of the Java platform is the Java Virtual Machine (JVM) that runs
programs converted to Java bytecode programs. The conversion to bytecode is done
by Java compiler. Bytecode is the optimized and effective machine language of
JVM. The JVM reads this bytecode, interprets it, and executes the program.
In fact, even if you write your code using other programming languages, such as
Python and Groovy, which are simpler than the Java language, your code still will
be converted to Java bytecode programs.
The JVM is ported to different platforms and insulates the program from the
underlying hardware and operating system. Thus it provides hardware- and
operating-system independence. The Java application programming interface (API)
is also a part of the Java platform. Java API classes are used for building software
applications.
First, let us discuss the Java programming language, one of the most popular
object-oriented programming languages in use. The statistics of SourceForge reports
that the number of open-source applications written in Java is close to those
written in C++. According to the TIOBE software index (http://www.tiobe.com/), a
c Springer International Publishing Switzerland 2016 1
S.V. Chekanov, Numeric Computation and Statistical Data Analysis
on the Java Platform, Advanced Information and Knowledge Processing,
DOI 10.1007/978-3-319-28531-3_1
2 1 Java Computational Platform
And thus Lynette, accepting her own grave risk with clear-eyed
comprehension and yet with unswerving determination, led these
four men to a spot where she knew that they would not find that
gold for which every man of them had striven so doggedly; thus it
was she who made it possible for Bruce Standing to be before all
others and to triumph and strike the death-blow to Big Pine and to
begin that relentless campaign which was to end in humbling his
ancient enemy, Young Gallup. Yet there was little exultation in
Lynette's heart, but a growing fear, when, after hours of furious
haste, she and the four men came at last into Light Ladies' Gulch
and to the base of the towering red cliffs.
Cliff Shipton knew more of gold-mining than any of the others and
Lynette watched him narrowly as he went up and down under the
high cliffs. And she knew that she in turn was watched; in the first
excitement of coming to the long-sought spot she had hoped that
she might escape. But both Taggart and Deveril followed her at
every step with their eyes.
Desperately she clung to her assurance that Bruce Standing would
come for her. He had said that he would come "though it were ten
thousand mile." He might have difficulties in finding her; she might
have to wait a little while, an hour or two, or three hours. But it
remained that he was a man to surmount obstacles insurmountable
to other men; a man to pin faith upon. Yet time passed and he did
not come.
They found indications of Mexicali Joe's labors, rock ledges at which
he had chipped and hammered, prospect holes lower on the steep
slope. And Cliff Shipton acknowledged that "the signs were all right."
But they did not find the gold and they did not find anything to show
that Joe or another had worked here recently.
"All this work," said Shipton, staring and frowning, "was done a year
ago."
"He'd be crafty enough," muttered Gallup, "to hide his real signs. We
got to look around every clump of brush and in every gully where
maybe he's covered things up.... You're sure," and he whipped about
upon Lynette, "that you got straight all he said?"
"I'm sure," said Lynette. And she was afraid that the men would
hear the beating of her heart.
"I am going up to the top of the cliffs again and see what I can see,"
she said.
"If there's gold anywhere it's down here," said Shipton. "There's
nothing on the top."
"Just the same I'm going!"
"Where the horses are?" jeered Taggart. "By God, if you have...."
"If you think I am trying to run away you can follow and watch me. I
am going!"
She turned. Deveril was watching her with keen, shrewd eyes.
Taggart took a quick stride toward her, his hand lifted to drag her
back. Deveril stepped before him, saying coolly:
"I'll go up with her, Taggart. And I guess you know how I stand on
this, don't you?"
"All right," conceded the sheriff. "Only keep your eye peeled. I'm
getting leery."
It was a long climb to the cliff tops and neither Lynette nor Deveril at
her heels spoke during the climb. They were silent when at last they
stood side by side near the tethered horses. Deveril's eyes were
upon her pale face; her own eyes ran swiftly, eagerly across the
deep cañon to the wooded lands beyond. She prayed with the fervor
of growing despair for the sight of a certain young blond giant of a
man racing headlong to her relief.
"Well?" said Deveril presently in a tone so strange, so vibrant with
suppressed emotion that he made her start and drew her wondering
eyes swiftly. "What are you looking for now?"
"Why do you talk like that ... what is the matter?"
His bitter laughter set her nerves quivering.
"Is the gold here, Lynette? Or is it some miles away, with Bruce
Standing already sinking his claws into it, Standing style?"
Again her eyes left him, returning across the gorge to the farther
wooded lands. Over there was a road, the road into which she and
Babe Deveril had turned briefly that night, a thousand years ago,
when they had fled from Big Pine in the dark; a road which led to
Bruce Standing's headquarters. From the top of the cliffs she caught
a glimpse of the road, winding among the trees; her eyes were
fixedly upon it; her lips were moving softly, though the words were
not for Babe Deveril's ears.
"Lynette," he said in that strangely tense and quiet voice, "if you
have been fool enough to try to put something over on this crowd....
Can't you guess how you'd fare in Jim Taggart's hands?"
She was not looking at him; she did not appear to mark his words.
He saw a sudden change in her expression; she started and the
blood rushed back into her cheeks and her eyes brightened. He
looked where she was looking. Far across the cañon, rising up
among the trees, was a cloud of dust. Some one was riding there,
riding furiously....
Together they watched, waiting for that some one to appear in the
one spot where the winding road could be glimpsed through the
trees. And in a moment they saw not one man only, but a dozen or a
score of men, men stooping in their saddles and riding hard, veiled
in the rising dust puffing up under their horses' flying feet. Now and
then came a pale glint of the sun striking upon the rifles which, to
the last man, they carried. They came into view with a rush, were
gone with a rush. The great cloud of dust rose and thinned and
disappeared.
"That road will bring them down into Light Ladies' Gulch where it
makes the wide loop about three miles from here," said Deveril.
"Have you an idea who they are, Lynette?"
"No," she said, her lips dry; "I don't understand."
"I think that I do understand," he told her, with a flash of anger.
"Those are Standing's men and they are riding, armed, like the mill-
tails of hell. Listen to me while you've got the chance! That's not the
first bunch of men who have ridden over there like that to-day. Two
hours ago, when you went down the cliffs with the others and I
stopped up here, I saw the same sort of thing happening. If you're
so innocent," he sneered at her, "I'll read you the riddle. I've told
you those are Standing's men; then why the devil are they riding like
that and in such numbers? They're going straight down into the
Gulch where the gold is while you hold us back, up here. And
Standing is paying off an old grudge and jamming more gold into his
bulging pockets.... And you've got some men to reckon with in ten
minutes who'll make you sorry that you were ever born a girl!"
"No!" she cried hoarsely. "No. I won't believe it...."
He failed to catch just what she was thinking. She refused to believe
that Bruce Standing, instead of coming to her had raced instead to
Mexicali Joe's gold; that instead of scattering his men across fifty
miles of country seeking her, he was massing them at a new gold-
mine. Bruce Standing was not like that! She cried it passionately
within her spirit. She had stood loyally by him; she had, at all costs,
kept her word to him ... she had come to believe in his love for her
and to long for his return....
"If you saw men before ... if you thought the thing that you think
now ... why didn't you rush on after them? It's not true!"
"I didn't rush after them," he returned curtly, "because I'd be a fool
for my pains and would only give that wolf-devil another chance to
laugh in my face. For if he's got this lead on us ... why, then, the
game is his."
"But I won't believe...."
"If you will watch you will see. I'll bet a thousand dollars he has a
hundred men down there already and that they'll be riding by all
day; they'll be staking claims which he will buy back from them at
the price of a day's work; he'll work a clean shut-out for Gallup and
Taggart. That's what he'd give his right hand to do. You watch a
minute."
They watched. Once Taggart shouted up to them.
"Down in a minute, Taggart." Deveril called back.
Before long Lynette saw another cloud of dust; this time three or
four men rode into sight and sped away after the others; before the
dust had cleared another two or three men rode by. And at last
Lynette felt despair in her heart, rising into her throat, choking her.
For she understood that in her hour of direst need Bruce Standing
had failed her.
"Taggart will be wanting you in a minute," said Deveril. He spoke
casually; he appeared calm and untroubled; he took out tobacco and
papers and began rolling a cigarette. But Lynette saw that the man
was atremble with rage. "Before you go down to him, tell me: did
you know what you were doing when you brought us to the wrong
place?"
"Yes!" It was scarcely above a whisper, yet she strove with all her
might to make it defiant. She was afraid and yet she fought with
herself, seeking to hide her fear from him.
He shrugged elaborately, as though the matter were of no great
interest and no longer concerned him.
"Then your blood be on your own head," he said carelessly. "I, for
one, will not raise my hand against you; what Taggart does to you
concerns only you and Taggart."
"Babe Deveril!"
She called to him with a new voice; she was afraid and no longer
strove to hide her fear. Until now she had carried on, head high, in
full confidence; confidence in a man. And that man, like Babe Deveril
before him, had thought first of gold instead of her. Bruce Standing
had spoken of love and had turned aside for gold; with both hands
full of the yellow stuff he thought only of more to be had, and not of
her.
"Babe Deveril! Listen to me! I have been a fool ... oh, such a fool! I
knew so little of the real world and of men, and I thought that I
knew it all. My mother had me raised in a convent, thinking thus to
protect me against all the hardships she had endured; but she did
not take into consideration that her blood and Dick Brooke's blood
was my blood! This was all a glorious adventure to me; I thought ...
I thought I could do anything; I was not afraid of men, not of you
nor of Bruce Standing nor of any man. Now I am afraid ... of Jim
Taggart! You helped me to run from him once; help me again. Now.
Let me have one of the horses ... let me go...."
All the while he stood looking at her curiously. Toward the end there
was a look in his eyes which hinted at a sudden spiritual
conflagration within.
"You're not used to this sort of thing?" And when she shook her
head vehemently, he added sternly: "And you are not Bruce
Standing's? And have never been?"
"No, no!" she cried wildly, drawing back from him. "You don't think
that...."
Now he came to her and caught her two hands fiercely.
"Lynette!" he said eagerly. "Lynette, I love you! To-day you have
stood between me and a fortune, and I tell you ... I love you! Since
first you came to the door of my cabin I have loved you, you girl
with the daring eyes!"
"Don't!" she pleaded. "Let me go. Can't you see...."
"Tell me, Lynette," he said sternly, still holding her hands tight in his,
"is there any chance for me? I had never thought to marry; but now
I'd rather have you mine than have all the gold that ever came out
of the earth. Tell me and tell me the truth; we know each other
rather well for so few days, Lynette. So tell me; tell me, Lynette."
Again she shook her head.
"Let me go," she pleaded. "Let me have a horse and go. Before they
come up for me...."
"Then there's no chance, ever, for me?"
"Neither for you nor for any other man.... I have had enough of all
men.... Let me go, Babe Deveril!"
Still he held her, his hands hardening on her, as he demanded:
"And what of Bruce Standing?"
"I don't know ... I can't understand men ... I thought there never
was another man like him, a hard man who could be tender, a man
who ... I don't know; I want to go."
"Go?" There came a sudden gleam into his eyes. "And where? Back
to Bruce Standing maybe?"
"No! Anywhere on earth but back to him. To the stage which will be
leaving Big Pine in a little while; back to a land where trains run,
trains which can take me a thousand miles away. Oh, Babe
Deveril...."
Taggart's voice rose up to them, sounding savage.
"What in hell's name are you doing up there?"
Then Deveril released her hands.
"Go to the horses," he commanded. "Untie all four. I'll ride with you
to the stage ... and we'll take the other horses along!"
She had scarcely hoped for this; for an instant she stood staring at
him, half afraid that he was jeering at her. Then she ran to the
horses and began wildly untying their ropes. Deveril, smoking his
cigarette, appeared on the edge of the cliff for Taggart to see, and
called down carelessly:
"What's all the excitement, Taggart?"
"Keep your eye on that girl. Shipton thinks she's fooled us. I want
her down here."
Deveril laughed at him and turned away. Once out of Taggart's sight
he ran. Lynette already was in the saddle; he mounted and took
from her the tie ropes of the other horses.
"On our way," he said crisply. "They'll be after us like bees out of a
jostled hive."
They did not ride into Big Pine, but into the road two or three miles
below where the stage would pass. Deveril hailed the stage when it
came and the driver took Lynette on as his solitary passenger. At the
last minute she caught Babe Deveril's hand in both of hers.
"There is good and bad in you, Babe Deveril, as I suppose there is in
all of us. But you have been good to me! I will never forget how you
have stood my friend twice; I will always remember that you were a
man; a man who never did little, mean things. And I shall always
thank God for that memory. And now, good-by, Babe Deveril and
good luck go with you!"
"And Standing?" he demanded at the end. "You are done with him,
too?"
Suddenly she looked wearier than he had ever seen her even during
their days and nights together in the mountains. She looked a poor
little broken-hearted girl; there was a quick gathering of tears in her
eyes, which she strove to smile away. But despite the smile, the
tears ran down. She waved her hand; the stage driver cracked his
long whip.... Deveril stood in the dusty road, his hat in his hand,
staring down a winding roadway. A clatter of hoofs, a rattle of
wheels, a mist of dust ... and Lynette was gone.
CHAPTER XXVI
Deveril went back to his horse, mounting listlessly like a very tired
man. The spring had gone out of his step and something of the
elasticity out of that ever-young spirit which had always been his no
matter from what quarter blew the variable winds of chance. Lynette
was gone and he could not hold back his thoughts from winging
back along the trail he and she had trod together; there had been
the time, and now he knew it, when all things were possible; the
time before Bruce Standing came into her life, when Babe Deveril,
had he then understood both himself and her, might have won a
thing more golden than any man's mere gold. In his blindness he
had judged her the light adventuress which she seemed; now that it
was given him to understand that in Lynette Brooke he had found a
pure-hearted girl whose inherited adventuresome blood had led her
into tangled paths, he understood that in her there had come that
one girl who comes once to all men ... and that she had passed on
and out of his life.
He caught up the reins of the horse she had left behind. His face
grew grim; he still had Jim Taggart to deal with and, therefore, it
was as well to take this horse and the others back to Big Pine and
leave them there for Taggart. For the first thing which would suggest
itself to the enraged sheriff would be to press a charge against him
of horse stealing, and in this country horse thieves were treated with
no gentle consideration.
"I'll leave the horses there ... and go."
Where? It did not matter. There was nothing left for him in these
mountains; Bruce Standing had the gold and the girl was on the
stage.
But in his bleak broodings there remained one gleam of gloating
satisfaction: he had tricked Standing out of the girl! That Lynette
already loved his kinsman or at the least stood upon the very brink
of giving her heart unreservedly into his keeping, Deveril's keen
eyes, the eyes of jealous love, had been quick to read. It did not
once suggest itself to him that Standing could by any possibility have
failed to love Lynette. The two had been for days together, alone in
the mountains; why should Standing have kept her and have been
gentle with her, as he must have been, save for the one reason that
he loved her? Further, what man could have lived so long with
Lynette of the daring eyes and not love her? And he, Babe Deveril,
had stolen her away from Bruce Standing, had tricked him with a
pencil scrawl, had lost Lynette to him for all time. The stage carrying
her away now was as inevitable an instrument in the hand of fate as
death itself.
He turned back for the other horses which he had tethered by the
roadside and led them on toward Big Pine.
"What the devil is love, anyway?" he muttered once.
It was not for a man such as Babe Deveril to know clearly; for love is
winged with unselfishness and self-sacrifice. And yet, after his own
fashion, he loved her and would love her always, though other pretty
faces came and went and he laughed into other eyes. She was lost
to him; there was the one great certainty like a rock wall across his
path. And she had said at the parting ... her last words to him were
to ring in his memory for many a long day ... that there was both
good and bad in him; and she chose to remember the good! He
tried to laugh at that; what did he care for good and bad? He, a man
who went his way and made reckoning to none?
And she had said that she knew him for a man; one who, whatever
else he might have done, had never stooped to a mean,
contemptible act; she thought of him and would always think of him
as a man who, though he struck unrighteous blows, dealt them in
the open, man-style.... And yet ... the one deed of a significance so
profound that it had directed the currents of three lives, that writing
of seven words, that signing of her name under them....
"I am glad that I did that!" he triumphed. And gladdest of all, in his
heart, was he that Lynette did not know ... would never know.
Thus Babe Deveril, riding with drooping head, found certain living
fires among the ashes of dead hopes: A row to come with Taggart?
He could look forward to it with fierce eagerness. Standing and
Lynette separated; vindictive satisfaction there. He'd got his knife in
Standing's heart at last! He'd like to wait a year or a dozen until
some time Lynette forgot and another man came despite her
sweeping avowal and she married; he would like then to come back
to Bruce Standing and tell him the fool he had been and how it had
been none other than Baby Devil who had knifed him.
... And yet, all the while, Lynette's farewell words were in his mind.
And he saw before him, wherever he looked, her face as he had
seen it last, her eyes blurred with her tears. And he fought
stubbornly with himself against the insistent admission: It was Babe
Deveril and none other who, saying that he loved her, had put those
tears there. Good and bad? What the devil had he to do with
sticking those labelling tags upon what he or others did?
Bruce Standing was still in his office. He was a man who had won
another victory and yet one who had the taste of despair in his
mouth. Gallup's town was doomed; it was one of those little
mountain towns which had already outlived its period of usefulness
and now with a man like Timber-Wolf waging merciless war against
it, Big Pine had its back broken almost at the first savage blow
struck. But Standing strode up and down restlessly like a man
broken by defeat rather than one whose standards went flying on
triumphantly; he knew that a new rival town, his own town, was
springing into being in a few hours; he had the brief satisfaction of
knowing that he was keeping an ancient promise and striking a body
blow from which there would be no recovery, making Big Pine take
the count and drop out of all men's consideration; he knew, from
having seen it many times, that pitiful spectacle which a dead and
deserted town presents; so, briefly, just as his kinsman was doing at
the same moment, he extracted what satisfaction he could from the
hour. He even had word sent to Gallup: "I am killing your town very
much as a man may kill an ugly snake. I shall see to it that goods
are sold cheaper here than at your store; there will be a better hotel
here, with a better shorter road leading to it. And I will build cabins
as fast as they are called for, to house deserters from your dying
town. And I will see to it that men from my town never set foot in
your town. This from me, Young Gallup: 'For the last time I have set
foot upon your dung heap. I'm through with you and the world is
through with you. You're dead and buried.'"
During the day, word came to him that several men and one girl had
been seen hastily occupied at the foot of the Red Cliffs; the girl
Lynette; one of the men, Deveril. And it seemed very clear to
Standing that Lynette had led Deveril and the others in hot haste to
the Red Cliffs only because she had misunderstood Mexicali Joe's
directions, confused by his mention of these cliffs where he had
prospected last year.
"I'll go get them." Standing told himself a score of times. "Just as
soon as I know how to handle them. When I know how I can hurt
him most and her...."
Mexicali Joe swelled about the landscape all day like a bursting
balloon, a man swept up in a moment from a condition of less than
mediocrity to one, as Mexicali regarded it, of monumental
magnificence and the highest degree of earthly joy. Graham could
not keep him out of Standing's office; the second time he came in
Timber-Wolf lifted him upon his boot hurling him out through the
door and promising him seven kinds of ugly death if he ever came
back. Whereupon Mexicali Joe, shaking his head, went away without
grumbling; for in the sky of his adoration stood just two: God and
Bruce Standing.
Graham was still laughing, when another man rode up to the door,
and Graham on the instant became alert and concerned. He
hastened to Standing, saying quickly:
"Mr. Deveril to see you. He has ridden his horse nearly to death. And
I don't like the look on his face."
"Show him in!" shouted Standing. "You fool ... don't you know he's
the one man in the world...."
Graham hurried out. Deveril, his face pale and hard, his eyes burning
as though the man were fever-ridden, came into the room. The door
closed after him.
"Well?" snapped Standing.
"Not so well, thanks," retorted Deveril with an attempt at his
characteristic inconsequential insolence. "Here's hoping the same to
you ... damn you!"
"If you've got anything to say, get it done with," commanded
Standing angrily.
"I'll say it," Deveril muttered. "But first I'll say this, though I fancy it
goes without saying: there is no man on earth I hate as I hate you.
As far as you and I are concerned I'd rather see you dead than any
other sight I'll ever see. And now, in spite of all that, I've come to do
you a good turn."
Standing scoffed at him, crying out: "I want none of your good
turns; I am satisfied to have your hate."
Deveril, with eyes which puzzled Timber-Wolf, was staring at him
curiously.
"Tell me, Bruce Standing," he demanded, "do you love her?"
"Love her?" cried Standing. "Rather I hate the ground she walks on!
She is your kind, Baby Devil; not mine." And he laughed his scorn of
her. But now there was no chiming of golden bells in that great
volume of laughter but rather a sinister ring like the angry clash of
iron. All the while Babe Deveril looked him straight in the eye ... and
understood!
"For once you lie! You love her and what is more ... and worse!...
she loves you! And that is why...."
"Loves me? Are you drunk, man, or crazy? Loves me and leaves me
for you; leads you and your crowd to the Gulch, trying to stake on
Joe's claim, trying to...."
"She did not leave you for me! I took Taggart and Gallup to her, and
Taggart put her under arrest ... for shooting you! And she did not
lead us to the spot where she knew Joe's claim was; she made fools
of us and led us to the Red Cliffs, miles away!"
Standing's face was suddenly as tense as Deveril's, almost as white.
"She left a note; saying that she was going back to you...."
Deveril strode by him to a table on which lay some letter paper and
wrote slowly and with great care, laboring over each letter:
And then he threw the pencil down and stood looking at Standing.
And he saw an expression of bewilderment, and then one of
amazement wiping it out, and then a great light leaping into
Standing's eyes.
"You made her go! You dragged her away! And you wrote that!"
Deveril turned toward the door.
"I have told you that she loves you. So it is for her happiness, much
as I hate you, that I have told you.... She, thinking that you
preferred gold to her, has just gone out on the down stage...."
"By the Lord, man," and now Standing's voice rang out joyously,
clear and golden once more, "you've done a wonderful thing to-day!
I wonder if I could have done what you are doing? By thunder, Babe
Deveril, you should be killed for the thing you did ... but you've
wiped it out. After this ... need there be hatred between us?"
He put out his hand. Deveril drew back and went out through the
door. His horse, wet with sweat and flecked with foam, was waiting
for him. As he set foot into the stirrup he called back in a voice
which rang queerly in Standing's ears:
"She doesn't know I wrote that. Unless it's necessary ... You see, I'd
like her to think as well...." He didn't finish, but rode away. And as
long as he was in sight he sat very erect in the saddle and sent back
for any listening ears a light and lively whistled tune.
The stage, carrying its one passenger came rocking and clattering
about the last bend in the grade where the road crosses that other
road which comes down from the mountains farther to the east,
from the region of Bruce Standing's holdings. The girl's figure
drooped listlessly; her eyes were dry and tired and blank with utter
hopelessness. Long ago the garrulous driver had given over trying to
talk with her. Now she was stooping forward, so that she saw
nothing in all the dreary world but the dusty dashboard before her ...
and in her fancy, moving across this like pictures on a screen, the
images of faces ... Bruce Standing's face when he had chained her;
when he had cried out that he loved her....
The driver slammed on his brakes, muttering; the wheels dragged;
the stage came to an abrupt halt. She looked up, without interest.
And there in the road, so close to the wheel that she could have put
out a hand and touched him, was Bruce Standing.
"Lynette!" he called to her.
She saw that he had a rifle in his hand; that a buckboard with a
restive span of colts was at the side of the road. The driver was
cursing; he understood that Standing, taking no chances, had meant
to stop him in any case.
"What's this?" he demanded. "Hold up?"
Standing ignored him. His arms were out; there was the gladdest
look in his eyes Lynette had ever seen in any man's; when he called
to her he sent a thrill like a shiver through her. He had come for her;
he wanted her....
"No!" she cried, remembering. "No! Drive on!"
"You bet your sweet life I'll drive on!" the driver burst out. And to
Standing: "Stand aside."
Then Standing put his hands out suddenly, dropping his rifle in the
road, and caught Lynette to him, lifting her out of her seat despite
her efforts to cling to the stage, and took up his rifle again, saying
sternly to the stage-driver:
"Now drive on!"
"No!" screamed Lynette, struggling against the one hand restraining
her ... and against herself! "He can't do this ... don't let him...."
But in the end she knew how it would be. The stage-driver was no
man to stand out against Bruce Standing ... she wondered if
anywhere on earth there lived a man to gainsay him when that light
was in his eyes and that tone vibrated in his voice.
"He's got the drop on me ... he'd drop me dead soon as not.... I'll
go, Miss; but I'll send back word...." And Lynette and Bruce
Standing, in the gathering dusk, were alone again in the quiet lands
at the bases of the mountains.
"Girl ... I did not know how I loved you until to-day!"
She whipped away from him, her eyes scornful.
"Love! You talk of love! And you leave me in the hands of those men
while you go looking for gold!"
"No," he said, "it wasn't that. I thought that you had no further use
for me; that you loved Deveril; that you had gone back to him; that
you were trying to lead him and the rest to Joe's gold; that...."
There was now no sign of weariness in a pair of gray eyes which
flashed in hot anger.
"What right had you to think that of me?" she challenged him. "That
I was a liar, breaking a promise I had made; and worse than a liar,
to betray a confidence? What right have you to think a thing like
that, Bruce Standing ... and talk to me of love!"
He could have told her; he could have quoted to her that message
which had been left behind, signed with her name. But, after all, in
the end he had Babe Deveril to think of, a man who had shown
himself a man, who had done his part for love of her, whose one
reward if Bruce Standing himself were a man, must lie in the meagre
consolation that Lynette held him above so petty an act as that one
which he had committed. So for a moment Standing was silent; and
then he could only say earnestly:
"I am sorry, Lynette. I wronged you and I was a fool and worse. But
there were reasons why I thought that.... And after all we have
misunderstood each other; that is all. Joe's gold is still Joe's gold; I
have made it safe for him and not one cent of it is mine or will ever
be mine...."
"Nor do I believe that!" she cried. "Nor any other thing you may ever
tell me!"
"That, at least, I can make you believe." He was very stern-faced
now and began wondering if Deveril had been mad when he had
told him that Lynette loved him. How could Deveril know that? There
was little enough of the light of love in her eyes now. And yet....
"Are you willing to come back to headquarters with me?" he asked
gently. "There, at least, you can learn that I have told you the truth
about Mexicali Joe's gold. No matter how things go, girl, I don't want
you to think of me that I did a trick like that ... forgetting you to go
money-grabbing...."
"You can make me come," she said bitterly. "You have put a chain on
me before now. But you can never make me love you, Bruce
Standing."
Now she saw in his face a look which stirred her to the depths; a
look of profound sadness.
"No," he said, "I'll never put chain on you again, girl; I'll never lift
my hand to make you do anything on earth; I would rather die than
force you to anything. But I shall go on loving you always. And
now," and for the first time she heard him pleading! "is it so great a
thing that I ask? If you will not love me, at least I want you to think
as well of me as you can. That is only justice, girl; and you are very
just. If you will only come with me and learn from Mexicali Joe
himself that I have touched and shall touch no single ounce of his
gold."
She knew that he was speaking truth; and yet she could not admit it
to him ... since she would not admit it to herself! And she wanted to
believe, and yet told herself that she would never believe. She was
glad that he was not dragging her back with him as she had been so
certain that he would ... and she did not know that she was not
sorry.
"Will you do that one thing? I shall not try to hold you...."
"Yes," she said stiffly. And then she laughed nervously, saying in a
hard, suppressed voice: "What choice have I, after all? The stage
has gone and I have to go somewhere and find a stage again or a
horse...."
"No. That is not necessary. If you will not come with me freely, I will
take you now where you wish; to overtake the stage."
And thus, when already it was hard enough for her, he unwittingly
made it harder. She wanted to go ... she did not want to go ... most
of all she did not want him to know what she wanted or did not
want. She cried out quickly:
"Let us go then! I don't believe you! And, if you dare let me talk
alone with Mexicali Joe, I shall know you for what you are!"
Lynette was in Bruce Standing's study. He had gone for Mexicali Joe.
She looked about her, seeing on all hands as she had seen during
their racing drive, an expression of the man himself. Here was a vital
centre of enormous activities; Standing was its very heart. The
biggest man she had ever known or dreamed of knowing; one who
did big things; one who was himself untrammelled by the dictates
and conventions of others. And in her heart she did believe every
word that he spoke; and thus she knew that he, this man among
men, loved her!... And she loved him! She knew that; she had
known it ... how long? Perhaps with clear definiteness for the first
time while she spoke of him with Deveril, yearning for his coming;
certainly when she had started at the sight of him at the stage
wheel. So she held at last that it was for no selfish mercenary gain
that he had been so long coming to her, but rather because he had
lost faith in her, thinking ill of her. That was what hurt; that was
what held her back from his arms, since she would not admit that he
could love her truly and misdoubt her at the same time. For certainly
where one loved as she herself could love, one gave all, even unto
the last dregs of loyal, confident faith. How confident all day she had
been that he would come to her!
Lynette, restless, walked up and down, back and forth through the
big rooms, waiting. Her wandering eyes were everywhere ... upon
only one of the shining table tops was a scrap of paper. In her
abstraction she glanced at it. Her own name! Written as though
signed to a note.
In a flash her quickened fancies pictured much of all that had
happened: Deveril to-day had told Standing she was going out on
the stage; Deveril had told Standing all that had happened ...
because Deveril, too, loved her and knew that she loved his
kinsman. She recalled now how Deveril had stopped a little while in
camp after Taggart had dragged her away. So Deveril had left this
note behind? And Standing knew now; he had said there were
reasons why he had been so sure she had gone to Deveril. She
understood how now it would be with him; Deveril had told him
everything and he, accepting a rich, free gift from the hand of a man
he hated was not the man in turn to speak ill of one who had striven
to make restitution, though by speaking the truth he might gain
everything! These were men, these two; and to be loved by two
such men was like having the tribute of kings.... She heard Standing
at the door, bringing Mexicali Joe. There was a little fire in the
fireplace; she ran to it and dropped the paper into the flames behind
the big log. The door opened to Standing's hand. At his heels she
saw Mexicali Joe.
"No!" she cried, and he saw and marvelled at the new, shining look
in her eyes; a look which made him stop, his heart leaping as he
cried out wonderingly:
"Girl! oh, girl ... at last?"
"Don't bring Joe in! I don't want to talk with him; I want your word,
just yours alone, on everything!"
Now it was Mexicali Joe who was set wondering. For Standing, with
a sudden vigorous sweep of his arm, slammed the door in Joe's
perplexed face and came with swift eager strides to Lynette.
"It is I who have been of little faith and disloyal," she said softly. "I
was ungrateful enough to forget how you were big enough to take
my unproven word that it was not I who shot you, a thing I could
never prove! And yet I asked proof of you! I should have known all
the time that ... 'though it were ten thousand mile....'"
She was smiling now and yet her eyes were wet. She lifted them to
his that he might look down into them, through them into her heart.
"Let me say this ... first ..." she ran on hastily. "Babe Deveril saved
me the second time to-day from Taggart. And he told you where to
find me. I think that he has made amends."
"He wiped his slate clean," said Standing heartily. "Henceforth I am
no enemy of his. But it is not of Deveril now that we must talk. Girl,
can't you see...."
"Am I blind?" laughed Lynette happily.
Transcriber's Note: