#]
#] *********************
#] "$d_webRawe"'Projects - mini/Puetz & Borchardt/0_Puetz & Borchardt notes.txt'
www.BillHowell.ca 01Mar2019 initial
12May2022 consolidated into this file :
28Mar2020 initial "$d_webRawe"'economics, markets/Steven Puetz/0_Puetz notes.txt'
# view in text editor, using constant-width font (eg courier), tabWidth = 3
These are NOT defined in my environment space. Used in this file only for convenience in ToC.
d_Puetz_notes="$d_webRawe"'economics, markets/Steven Puetz/"
d_Puetz_newsletter="$d_PROJECTS""Investments/Puetz newsletter/pdfToText/"
$ find "$d_PROJECTS""Investments/Puetz newsletter/pdfToText/" -type f -name "*" | tr \\n \\0 | xargs -0 -IFILE grep --with-filename --line-number "eclipse" "FILE" | sed 's#.*\(.*\)/#\1#' | sort
190911 Puetz 1.17, 3.5, 10.5 y cycles across countries & indexes.png
09Sep22 semi-log slope versus normal growth rates :
48************************************************48
#****************************
# Table of Contents, generated with :
# $ grep "^#]" "$d_webRawe"'Projects - mini/Puetz & Borchardt/0_Puetz & Borchardt notes.txt' | sed "s/^#\]/ /"
#
*********************
"$d_webRawe"'Projects - mini/Puetz & Borchardt/0_Puetz & Borchardt notes.txt'
+-----+
Key Points
Formulae for Puetz UWS
References :
References below are in direcctory "http://www.BillHowell.ca/Projects - mini/Puetz & Borchardt/" :
+-----+
18Apr2022 [time, geometry] : joint origins of base [2,3,6,12] periodicities?
18Apr2022 MindCode "Darkh Spinns" - want to include Puetz as example
16Apr2022 search "Birkeland current stability analysis"
15Apr2022 stock markets to geochronology: [Puetz, Lucas, Peratt, Mills]
17Sep2021 Steve Puetz, Editor "UNIVERSAL CYCLE THEORY FINANCIAL NEWSLETTER"
19Aug2021 "$d_Puetz_newsletter"UCT_2021-08-18 Increased Dependence on Government.pdf"
07May2021 "$d_Puetz_newsletter"UCT_2021-05-06 Market cycles converge toward a major top.pdf"
09Apr2021 Puetz newsletter search "markets", "eclipse"
25Mar2021 UWS recalibrated to the markets
28Feb2021 UCT_2021-01-27 Easy Credit, Dependencies, and Inflation.pdf
01Jan2020 'PuetzUWS- tests.ndf' - Problem with mixed up variables, Puetz_UWS_optimisation
30Dec2020 UWS_result_and_error_test, Puetz_UWS_optimisation
31Dec2020 YIKES!! shouldn't n_weights be weightL? ;
30Dec2020 test the operators : [Puetz_UWS_optimisation, UWS_result_and_error, PSO_optimize]
30Dec2020 UWS_result_and_error :
30Dec2020 SP500L.
28Dec2020 Modelling SP500 with UWS
29Dec2020 UWS_regular_2010_2030
18Apr2020 Peutz no longer believes in 1929-style crash (gone past) still thinks a depression >1929 is coming?
28Mar2020 Puetz newsletter - postings to my [webste, Facebook]
11Mar2019 Puetz & Borchardt emails to Stephen [Yaskell, Howell]
01Mar2019 Borchardt's "infinity" - far beyond other scientists
25Nov2015 Puetz, Borchardt 150925 Quasi-periodic fractal patterns in geomag reversals, activity, astro-events
24************************24
#] +-----+
#] Key Points
+-----+
#] Formulae for Puetz UWS
Stephen J. Puetz a,∗ , Glenn Borchardt b "Quasi-periodic fractal patterns in geomagnetic reversals, geological activity, and astronomical events" Chaos, Solitons and Fractals 81 (2015) 246–270
a Progressive Science Institute, Honolulu, HI 96815, USA
b Soil Tectonics, Box 5335, Berkeley, CA 94705, USA
The Universal Cycle model, consisting of an unlimited number of individual UWS cycles, has hypothetical periods of :
(1) P(k,n) = (3^k / 2^n) * P(0,0)
where :
k is a positive or negative integer corresponding to a cycle in the primary period-tripling sequence
n is one of eight period-halving harmonics where n ∈ {0, 1, 2, 3, 4, 5, 6, 7}
P(0,0) is a base cycle with a period of 2.82894367327307 solar years.
The composite stochastic Universal Cycle model consists of a superposition of cosine waves, with periods of P(k,n) from Eq. (1), corrupted by Gaussian white noise, and are of the form :
(2) yi = sum[k=k1 to K: sum[n=n1 to N: A(k,n)*cos(2*π*(ti + φ) / P(k,n)) + σ*Zi
where
i = 1, 2, 3,..., I are the records in a time-series
K is a set of consecutive integers
N is the integer set {0, 1, 2, 3, 4, 5, 6, 7}
A(k,n) are non-negative amplitude factors
ti are negative numbers for times in the past and positive for times in the future
φ is a phase adjustment so that all UWS cycles peak synchronously at time φ
The Universal Cycle model is not intended as a model for all cycles found in nature. Instead, it describes an important fractal subset of natural cycles. Accordingly, Z i are independent random variables with standard normal distributions, with σ > 0, representing noise and other non-UWS cyclical variation in the signal. The simplest model for the noise is additive Gaussian white noise, but more sophisticated models can be used.
+-----+
#] References :
Puetz, Stephen J., Prokoph, Andreas, Borchardt, Glenn, Mason 2014, Evidence of Synchronous, Decadal to Billion Year Cycles in Geological, Genetic, and Astronomical Events: Chaos, Solitons & Fractals, v. 62–63, p. 55-75 [ http://dx.doi.org/10.1016/j.chaos.2014.04.001].
Puetz SJ, Prokoph A, Borchardt G (2015). Evaluating alternatives to the Milankovitch Theory. Journal of Statistical Planning and Inference, in press, uncorrected proof.
http://www.sciencedirect.com/science/article/pii/S0378375815001901
Puetz SJ and Borchardt G (2015). Quasi-periodic fractal patterns in geomagnetic reversals, geological activity, and astronomical events. Chaos, Solitons Fract (2015) 81:246-270.
http://dx.doi.org/10.1016/j.chaos.2015.09.029
Stephen J. Puetz, Glenn Borchardt 2011 "Universal Cycle Theory : Neomechanics of the hierarchically infinite universe" http://www.OutskirtsPress.com ISBN: 978-1-4327-8133-0 http://www.amazon.com/dp/1432781332
Stephen J. Puetz 2009 "The Unified Cycle Theory: How cycles dominate the structure of the universe and influence life on Earth" http://www.OutskirtsPress.com Denver Colorado USA, ISBN: 978-1-4327-1216-7 http://www.amazon.com/dp/1432712160
http://www.uct-news.com/
+-----+
#] References below are in webDirectory "http://www.BillHowell.ca/Projects - mini/Puetz & Borchardt/" :
Examples of Puetz results :
Puetz - 88 year cycle and harmonics 13Jan2019.png
200214 Puetz UWS plus detrended S&P500.png
Howell commentary :
190911 Puetz 1.17, 3.5, 10.5 y cycles across countries & indexes.png
Howell - comments on Puetz UWS, the greatest of cycles, human implications.odt
Howell - [time, geometry] joint origins of base [2,3,6,12] periodicities, as a basis for Puetz UWS.html
Puetz - Universal Waves Series.ods
#] +-----+
24************************24
#24************************24
# Setup, ToDos,
#08********08
#] ??Apr2022
#08********08
#] ??Apr2022
#08********08
#] ??Apr2022
#08********08
#] ??Apr2022
#08********08
#] ??Apr2022
#08********08
#] ??Apr2022
#08********08
#] ??Apr2022
#08********08
#] 09Sep22 semi-log slope versus normal growth rates : [, 1 + i] are NOT the same!!!
#] 11Sep2022 need to redo this for exactly 10yr comparison
from "$d_Qndfs"'gnuplot via subFiles.ndf' :
'yDetrend = (yTrn/yEstTrn - 1) / relStdDevTrn (Trn = log transformation of [y])'
'yTrend = 10 power ( + * yr) (normal, not log, yTrend)'
therefore :
yTrend
= (10 power ) * (10 power ( * yr))
= (10 power ) * (10 power yr)^()
.
compound interest :
P(yr) = P(0) * (1 + i)^yr
.
therefore :
(10 power ) * (10 power yr)^ = P(0) * (1 + i)^yr
but assume equivalence (this will NOT hold) :
yTrend(yr) = P(yr)
.
at yr = 0
(10 power ) * (10 power yr)^ = P(0) * (1 + i)^yr
(10 power ) * 1 = P(0) * 1
yTrend(0) = (10 power ) = P(0)
therefore
(10 power yr)^ = (1 + i)^yr
root by ^(-1)
{ (10 power yr)^()}^(1 /) = ( 1 + i)^(yr/)
10 power yr = (1 + i)^(yr/)
take log :
yr = (yr/) * log(1 + i)
= log(1 + i)
i = 10 power ( - 1)
.
+-----+
QNial program, see "$d_Qmkts"'rates - normal versus semi-log.ndf'
# qnial> rateSemiLogL_to_rateNormalL (0.02 * (tell 10))
+------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
|rateSemiLogL|0.000|0.020|0.040|0.060|0.080|0.100|0.120|0.140|0.160|0.180|
+------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
|rateNormalL |0.100|0.105|0.110|0.115|0.120|0.126|0.132|0.138|0.145|0.151|
+------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
# qnial> returns_normal_vs_semiLog 0.05 (tell 10)
rateSemiLog= 0.050; rateNormal= 0.112
+--------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+
|yr | 0| 1| 2| 3| 4| 5| 6| 7| 8| 9|
+--------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+
|returnSemilogL|100.000|112.202|125.893|141.254|158.489|177.828|199.526|223.872|251.189|281.838|
+--------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+
|returnNormalL |100.000|111.220|123.699|137.579|153.015|170.184|189.279|210.516|234.136|260.407|
+--------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+
setformat oldformat
+-----+
# primitive checks :
qnial> 3 power (2 + 4)
729
qnial> (3 power 2) * (3 power 4)
729
qnial> 3 power (2*4)
6561
qnial> (3 power 2) power 4
6561
#08********08
#] 18Apr2022 [time, geometry] : joint origins of base [2,3,6,12] periodicities?
see ""'Howell - [time, geometry] joint origins of base [2,3,6,12] periodicities, as a basis for Puetz UWS.html'
#08********08
#] 18Apr2022 MindCode "Darkh Spinns" - want to include Puetz as example
#08********08
#] 16Apr2022 search "Birkeland current stability analysis"
Anderson etal 26Mar2008 Statistical Birkeland current distributions from magnetic field observations by the Iridium constellation
B. J. Anderson 1 , H. Korth 1 , C. L. Waters 2 , D. L. Green 2 , and P. Stauning 3
Ann. Geophys., 26, 671–687, 2008 www.ann-geophys.net/26/671/2008/
https://agupubs.onlinelibrary.wiley.com/doi/full/10.1002/2015JA021680
1 The Johns Hopkins University, Applied Physics Laboratory, Laurel, MD, USA
2 School of Mathematical and Physical Sciences, The University of Newcastle, Callaghan, NSW, Australia
3 Solar-Terrestrial Physics Division, Danish Meteorological Institute, Copenhagen, Denmark
Received: 4 December 2006 – Revised: 8 November 2007 – Accepted: 10 December 2007 – Published: 26 March 2008
search "Spectral periodicities of Birkeland currents"
>> nada
$ find "$d_References" -maxdepth 4 -type f | grep --invert-match "z_Old" | grep --invert-match "z_Archive" | grep 'Puetz'
>> nada, but it was in :
"$d_webRawe"'Electric Universe/Scott - Birkeland currents/Scott 14mmdd - Magnetic Structure of Force-Free Currents.pdf'
p8c2h0.35 Table I Important radius values for magnetic components
qnial> J0 := 2.4048 5.5201 8.6537 11.7915 14.9309
2.4048 5.5201 8.6537 11.7915 14.9309
qnial> J1 := 3.8317 7.0156 10.735 13.327
3.8317 7.0156 10.735 13.327
qnial> / [front, rest] (reverse J0)
1.26624 1.3626 1.56767 2.29545
qnial> / [front, rest] (reverse J1)
1.24145 1.53016 1.83094
>> nothing
search "factor of 3 periodicities"
>> nada
search "spherical vibration peeriodicities"
"plasma instability frequencies"
Anthony eratt's 1972 textbook : nada
I can't find anything... maybe my own analysis (like Birkeland current end-effect [principal, shear] forces)
Electricity & plasmas???
#] 15Apr2022 stock markets to geochronology: [Puetz, Lucas, Peratt, Mills]
process [orbit, Birkeland current filaments, Z-pinches, current sheets]
scale [atomic, laboratory, atmo-geo, solar system, Milky Way, etc]
experiments [Birkeland Torella, Electric Universe SAFIRE, ?Los Alamos? Z-pinch, SuspObs Billy Yelverton]
Lucas quantization via Universal Force - multiples of 3?
(1) Bode's Law for planetary orbitals
+-----+
Yelverton's Lab
https://suspicious0bservers.org/yelvertons-lab/
https://www.youtube.com/watch?v=4gxbVOLmQ-s
Earth Electric | Deep Quakes, Electric-Magnetic-Kinetic
25,800 views, Jul 16, 2020
Billy Yelverton Jr. operates the plasma lab, and has contributed to our understanding of seismicity, space weather, cosmology, asteroids, and more.
08********08
#] 17Sep2021 Steve Puetz, Editor "UNIVERSAL CYCLE THEORY FINANCIAL NEWSLETTER"
Honolulu, Hawaii, http://www.uct-news.com E-mail: contact@uct-news.com
16Sep2021 newsletter "Consequences of increased dependency on government"
The extensive record of repeated crises essentially falsifies the theory that the Federal Reserve enhances financial stability. Then one must onder: Why is the Federal Reserve still in existence?
The answer lies with the nature of political structures, especially with institutions and power structures within the prevailing economic paradigm. Such structures are based on beliefs rather than logic and reason. In a landmark publication entitled An Essay on Metaphysics, Collingwood (1940) discussed the emotional part of science, which he referred to as absolute presuppositions. Scientists generally conduct research based on the degree of agreement between observations (evidence) and a theory. This is the reasonable, unemotional part of science. However, by asking why something happens, and when an answer is given, by again asking why that happens, an advocate of a theory becomes trapped into an infinite regress of explanations (Popper, 1963). After repeated questioning, a proponent of a theory will eventually struggle to give a reasonable answer – at which point the proponent becomes "ticklish" in the words of Collingwood (1940). Collingwood (1940) refers this emotional response as the tripping point reached when someone questions an obvious truth in the eyes of an advocate. That is, all of us hold beliefs that we do not allow others to question. These are beliefs that a proponent will likely hold regardless of reasons others give to challenge it. Collingwood (1940) calls these beliefs absolute presuppositions, whereas Borchardt (2007) employs a similar concept, referring to unprovable beliefs as fundamental assumptions.
08********08
#] 19Aug2021 "$d_Puetz_newsletter"UCT_2021-08-18 Increased Dependence on Government.pdf"
Great comment on change-over to socialism
>> perhaps inevitable with loss of competitiveness?
08********08
#] 07May2021 "$d_Puetz_newsletter"UCT_2021-05-06 Market cycles converge toward a major top.pdf"
While business owners complain about a labor shortage, the policymakers who legislated and incentivized the current set of "stay at home" programs, seem less concerned. For instance, the May 6 CNBC article states: "Treasury Secretary Janet Yellen has cautioned privately against overreacting, according to the Washington Post... Yellen argued more time and data are needed before assuming there is a problem [with finding workers] in the economy. [Likewise] Heidi Shierholz, senior economist and director of policy at the Economic Policy Institute, doesn’t believe there is a widespread labor shortage. For one, wages aren’t rising rapidly, which indicates a tight labor market and job growth is booming, she said in a recent op-ed in the Initiative for Policy Dialogue. 'Employers post their too-low wages, can’t find workers to fill jobs at that pay level, and claim they’re facing a labor shortage,' she wrote. Given the ubiquity of this dynamic, I often suggest that whenever anyone says, 'I can’t find the workers I need,’ she should really add, 'at the wages I want to pay.'"
Yet, these views are primarily coming from liberal policymakers who are far removed from the real-world problems that businesses face when attempting to hire workers, as the CNBC article states: "Many small businesses argue that they can’t pay higher wages if they aren’t making money. Already, 28% of small business owners reported raising compensation in March, according to the NFIB survey. 'If I could pay every single person in this place more to come back and feel safe I would,' said Glassman, who just gave his staff raises. His bartenders and servers, for instance, make $15 an hour before tips. He had a hard time finding a custodian at $17 an hour and dishwasher at $16 per hour. 'I absolutely would love to give everyone a massive raise to feel more safe and more loved,' he added. 'Right now, we don’t know where that money comes from.'"
08********08
#] 09Apr2021 Puetz newsletter search "markets", "eclipse"
$ find "$d_PROJECTS""Investments/Puetz newsletter/" -type f -name "*" | tr \\n \\0 | xargs -0 -IFILE grep --with-filename --line-number "markets" "FILE"
>> doesn't "reach into" body of pdf for search
for pdftotext conversion for searching body text, see :
"$d_bin""pdfToText directory.sh" - convert pdfs in a directory to text, same fnames
$ find "$d_PROJECTS""Investments/Puetz newsletter/pdfToText/" -type f -name "*" | tr \\n \\0 | xargs -0 -IFILE grep --with-filename --line-number "eclipse" "FILE" | sed 's#.*\(.*\)/#\1#' | sort
>> provides file listing
08********08
#] 25Mar2021 UWS recalibrated to the markets
&&&&&&&&
emto Puetz Subject : Market newsletter - great work
As always, I enjoy your great work and insights. This month's detailed look at the UWS 1.47& 4.2 cycles is especially interesting food for thought for timing. Actually, timing is not hugely relevant to me - I'm too chicken and have been dominantly in "cash is trash" for most of the year, with occasional jumps-in-and-out for minor positions.
You mention deflation only briefly this month, whereas you have often stressed that risk in detail. Your explicits thoughts on [inflation versus deflation, timing thereof, subtle differences in analysis at this point] would be really interesting, even though that is implied by overall gist of your analysis.
Your recalibration of the UWS is verey encoug to see. I guess I'm always conceerned about the behaviour real time series versus strictly-applied "sinusoidal curves", and it is reminiscentof how Imagine the Mayan's adaptations of their 20+ calendar systems (not just clockwork - perhaps the priest lived and died by their results).
But most of all, I would really like to see a graph of Fed injections and the S&P500. "Don't fight the Fed" seems to have attained the status of a religion, and we are so far beyond anything in modern history I didn't think anyone has a handle on it. One possible exception : quantitative economimc historians, such as :
David Fischer 1996 "The Great Wave, Price revolutions and the rhythm of history" New York, Oxford University Press, ISBN 0-19-505377-X
In that vein, on a YouTube video of 09Mar2021 Jason Hartman commented that current interest rates are the lowest they've been ever - over a 5,000 year period going back to ancient Egypt.
https://www.youtube.com/watch?v=9HfGKl-1gug
34:36 Interest rates are lowest in 5,000 years
So the entire bond market is also hoping to bail out of long bonds well before their "greater fool" colleagues?
Anyways, keep it up!
08********08
#] 28Feb2021 UCT_2021-01-27 Easy Credit, Dependencies, and Inflation.pdf
08********08
#] 01Jan2020 'PuetzUWS- tests.ndf' - Problem with mixed up variables, Puetz_UWS_optimisation
clean up link d_Qtest 'PuetzUWS- tests.ndf'
qnial> bye
$ qnial
qnial> loaddefs link d_Qtest 'PuetzUWS- tests.ndf'
Problem with mixed up variables [,]
# Puetz_UWS_optimisation - flag_test forces output, but does NOT launch PSO :
IF flag_test THEN write E_CUTOFF MAXV MAXITER weight run_no paramsGiven p_out ; ENDIF ;
qnial> Puetz_UWS_optimisation_test
+----+---+----+---+-+-----------------------------------------------------------------------------------------
|0.02|0.1|2000|0.9|2|0.164248 0.221416 0.907139 0.135713 0.878571 0.12619 0.20873 0.236243 0.245414 0.1 0.12 0
+----+---+----+---+-+-----------------------------------------------------------------------------------------
--------------------------------+-------------------------------------------+
.14 0.16 0.18 0.2 0.22 0.24 0.26|/media/bill/ramdisk/PSO_optimize output.txt|
--------------------------------+-------------------------------------------+
>> OK
>> thetaNL check :
qnial> 2 * PI * (0.992744 0.164248 0.221416 0.907139 0.135713 0.878571 0.12619 0.20873 0.236243)
1.032 1.3912 5.69972 0.85271 5.52022 0.792875 1.31149 1.48436 1.54198
>> mostly OK, except "shifted down" one row of dataTable!?!? is this caused by colTitles?
qnial> 2 * PI * (0.992744 0.164248 0.221416 0.907139 0.135713 0.878571 0.12619 0.20873 0.236243)
6.23759 1.032 1.3912 5.69972 0.85271 5.52022 0.792875 1.31149 1.48436
qnial> Puetz_UWS_optimisation_test
27 28 29 30 31 32 33 34 35
+----+---+----+---+-+-----------------------------------------------------------------------------------------
|0.02|0.1|2000|0.9|2|0.992744 0.164248 0.221416 0.907139 0.135713 0.878571 0.12619 0.20873 0.236243 0.1 0.12 0
+----+---+----+---+-+-----------------------------------------------------------------------------------------
--------------------------------+-------------------------------------------+
.14 0.16 0.18 0.2 0.22 0.24 0.26|/media/bill/ramdisk/PSO_optimize output.txt|
--------------------------------+-------------------------------------------+
>> OK, fixed
+-----+
OK - now the BIG thing is to [test, debug, improve] PSO_optimize
In Puetz_UWS_optimisation, flag_test = l prevents PSO_optimize
% optimize OR test, not both ;
IF flag_test
THEN write E_CUTOFF MAXV MAXITER weight run_no paramsGiven p_out ;
ELSE % PSO_optimize outputs results to p_out (plus other summary info) ;
PSO_optimize "UWS_result_and_error PSO_paramL ;
ENDIF ;
qnial> PSO_optimize_test
To check variables while in break :
-->[nextv] n_particles E_CUTOFF MAXV MAXITER weight run_no paramsGiven p_out
+---+----+---+----+---+-+-------------------------------------------------------------------------------------
|160|1000|0.1|2000|0.9|1|0.992744 0.164248 0.221416 0.907139 0.135713 0.878571 0.12619 0.20873 0.236243 0.1 0.
+---+----+---+----+---+-+-------------------------------------------------------------------------------------
------------------------------------+-------------------------------------------+
12 0.14 0.16 0.18 0.2 0.22 0.24 0.26|/media/bill/ramdisk/PSO_optimize output.txt|
------------------------------------+-------------------------------------------+
>> OK
-->[nextv] EACH (gage shape) error finish fout gbest i IRang_L IRang_R iter pbest pbestx p_out tx vx weight weight_up xx
+++++++++---+------+--+------+------+++------+
|||||||||160|18 160|43|18 160|18 160|||18 160|
+++++++++---+------+--+------+------+++------+
>> This doesn't look good.
weight := 0.9 ; % reduces particles' velocities as swarm runs ;
>> it was reset??!! How did that happen, as I can't see any reset?
In any case, I did this BEFORE any further processing.
>> Dummy - shape of atom is a null
1st 8 are atoms (error finish fout gbest i IRang_L IRang_R iter)
(weight weight_up) atoms
leaving :
pbest pbestx p_out tx vx xx
(160, 18 160, 43, 18 160, 18 160, 18 160)
>> OK, makes sense
-->[nextv] p_out
/media/bill/ramdisk/PSO_optimize output.txt
-->[nextv] shape p_out
43
>> yupp
?.. Tell_particles
-->[nextv]
o+
||
++
>> nope, this is wrong
Change :
+.....+
tell_params := tell (gage shape n_params) ;
tell_particles := tell (gage shape n_particles) ;
+.....+
To :
+.....+
tell_params := tell n_params ;
tell_particles := tell n_particles ;
+.....+
>> rest will be an abortion - Ctrl-c, and make supper
Next try :
-->[nextv] tell_params tell_particles
>> OK
?.. Error := apply "optrPhr Xx | [ , I_particle ]
-->[nextv]
?not an operation
>> Hmmm, "UWS_result_and_error
Try
qnial> apply "UWS_result_and_error_test
?apply requires a pair
qnial> apply "UWS_result_and_error_test null
?not an operation
qnial> UWS_result_and_error_test
24352.4
qnial> apply "UWS_result_and_error (0.992744 0.164248 0.221416 0.907139 0.135713 0.878571 0.12619 0.20873 0.236243 0.1 0.12 0.14 0.16 0.18 0.2 0.22 0.24 0.26)
24352.4
>> These work fine. So there must be an argument mismatch or something
Check optrPhr
Does xx|[,i_particle] have to be in parenthesis? check it's value during break
-->[nextv] xx|[,i_particle]
0.992744 0.164248 0.221416 0.907139 0.135713 0.878571 0.12619 0.20873 0.236243 0.1 0.12 0.14 0.16 0.18 0.2 0.22 0.24 0.26
>> looks great
-->[nextv] apply "optrPhr Xx | [ , I_particle ]
?not an operation
-->[nextv] "optrPhr
optrPhr
>> What? how did this happen?
>> Idiot! I did this before.
Change :
+.....+
error := apply "optrPhr xx|[,i_particle] ;
+.....+
To :
+.....+
error := apply optrPhr xx|[,i_particle] ;
+.....+
?.. Error := apply Optrphr Xx | [ , I_particle ]
-->[nextv]
24352.4
>> OK, it's good
blow through
FOR i_particle WITH tell_particles DO
to next break
xx := tx ;
>> Oops, put initial break in the wrong place
Just let it run...
-->[nextv] flag_break := o
o
-->[nextv] resume
There doesn't seem to be any learning
set MAXITER - 20 for now
I didn't re-scale yData to be realistic!!
Puetz_UWS_optimisation I added :
yDataL := yDataL / (1.2 * max yDataL) ;
Try again
?.. Error := apply Optrphr Xx | [ , I_particle ]
-->[nextv]
25601.8
>> what the hell happened?
>> yDataL looks good - but all between 0 & 1? what happended to negatives?
-->[nextv] [max, min] yDataL
0.833333 0.0865597
>> oops, I didn't retain the sign, even though all500 data is positive (might not be in other challenges)
yDataL := yDataL / (1.2 * max (abs yDataL)) ;
>> I will need the average later, to rescale results
error still stuck at 201.8. Why? I had rescaled everything?
UWS_result_and_error :
sum ((yDataL - yCalc) EACHLEFT power 2)
No file output?
p_out := link d_temp 'PSO_optimize output.txt' ;
qnial> d_temp
/media/bill/ramdisk/
>> Oops, file open was too early in code!
PSO_optimize seems to GROW (maximize) the error!?!?!?
Change :
+.....+
vx@(i_param i_particle) := (weight_up * vx@(i_param i_particle))
+ ((random 1) * MAXV * (pbestx@(i_param i_particle) - xx@(i_param i_particle)))
+ ((random 1) * MAXV * (pbestx@(i_param gbest ) - xx@(i_param i_particle))) ;
+.....+
To :
+.....+
vx@(i_param i_particle) := (weight_up * vx@(i_param i_particle))
+ ((random 1) * MAXV * (pbestx@(i_param i_particle) - xx@(i_param i_particle)))
+ ((random 1) * MAXV * (pbestx@(i_param gbest ) - xx@(i_param i_particle))) ;
+.....+
At MAXV = 0.1, very slow reduction of error (sum pbest)
MAXV = 10, no error improvement
MAXV = 0.01,
+-----+
# olde code
IF flag_debug THEN write 'loading SP500_PeutzUWS_double_1870_2030' ; ENDIF ;
# SP500_PeutzUWS_double_1870_2030 IS OP pout -
SP500_PeutzUWS_double_1870_2030 IS OP pout
{
UWS_indxL := 27 + (tell (35 - 27 + 1)) ;
weightL := 1 + ((tell (gage shape UWS_indxL)) * 0.2) ;
Puetz_UWS_model "UWS_2011 (2 4) 1870 2030 0.1 UWS_indxL weightL pout ;
host link 'gnuplot "' d_Puetz 'Puetz DUWS model for SP500 1870-2030 non-fitted.plt' '" ' ;
}
# pout for d_webRawe
SP500_PeutzUWS_double_1870_2030 link d_Puetz 'Puetz DUWS model for SP500 1870-2030 non-fitted.dat' ;
# Puetz_UWS_model :
lambdaL_thetaNL_list := rows UWS_model|[UWS_indxL + 1,colSelects] ;
lambdaL_thetaNL_nWeights_list := weightL EACHBOTH link lambdaL_thetaNL_list ;
model_parts := EACH link (cart (xData lambdaL_thetaNL_nWeights_list)) ;
model_calcs := EACH UWS_calc model_parts ;
yCalc := EACH sum rows model_calcs ;
#
08********08
#] 30Dec2020 UWS_result_and_error_test, Puetz_UWS_optimisation
# UWS_result_and_error_test IS -
>> put in a flag break
>> lambdaL n_thetaN SP500L yList - OK except for SP500L (?slice)
UWS_result_and_error_test IS
{
% UWS_result_and_error IS OP params - calculate total error for current PSO_positions (xx) ;
params := 0.992744 0.164248 0.221416 0.907139 0.135713 0.878571 0.12619 0.20873 0.236243 0.1 0.12 0.14 0.16 0.18 0.2 0.22 0.24 0.26 ;
UWS_result_and_error params ;
}
# check
NONLOCAL lambdaL n_thetaN SP500L yList ;
qnial> EACH (gage shape) lambdaL n_thetaN SP500L yList
qnial> EACH (gage shape) lambdaL n_thetaN SP500L yList
+-++------+----+
|9||1466 3|1501|
+-++------+----+
>> WRONG - this is NOT going to work, rows [SP500L, yList] must be the same!
I made n_thetaN a global (NONLOCAL) in Puetz_UWS_optimisation
qnial> (0 1 2 3) choose yList
1870. 1870.1 1870.2 1870.3
qnial> SP500L|[0 1 2 3,]
+-------+----+-------+
|1871.22|4.61|0.75694|
+-------+----+-------+
|1871.47|4.82|0.79136|
+-------+----+-------+
|1871.72|4.84|0.79458|
+-------+----+-------+
|1871.97|4.74|0.77810|
+-------+----+-------+
>> 1st 5 rows of 'SP500 1872-2020 TradingView download.dat' :
year SP500(yr) SP500(yr)/SP500_semilog_detrended(yr)
1871.22 4.61 0.75694
1871.47 4.82 0.79136
1871.72 4.84 0.79458
1871.97 4.74 0.77810
1872.14 4.88 0.80104
# I should NOT do any interpolation! Instead use the data points as is!
link d_Qndfs 'Puetz - Universal Waves Series.ndf'
# Puetz_UWS_optimisation IS OP UWSmodel_phr colSelects y_start y_end y_step p_out -
yList := y_start + ((tell (1 + (floor ((y_end - y_start) / y_step)))) * y_step) ;
>> This should simply use SP500L years!!!
Change :
+.....+
% initialize ;
yList := y_start + ((tell (1 + (floor ((y_end - y_start) / y_step)))) * y_step) ;
n_series := 27 + (tell (35 - 27 + 1)) ;
SP500L := tabTable_readFrm_path
(link d_webRawe 'economics, markets/SP500/multi-fractal/SP500 1872-2020 TradingView download.dat') ;
% drop the column titles (1st row) ;
SP500L := SP500L|[(tell (first (gage shape SP500L) - 1)) + 1,] ;
+.....+
To :
+.....+
% initialize ;
n_series := 27 + (tell (35 - 27 + 1)) ;
SP500L := tabTable_readFrm_path
(link d_webRawe 'economics, markets/SP500/multi-fractal/SP500 1872-2020 TradingView download.dat') ;
% drop the column titles (1st row) ;
SP500L := SP500L|[(tell (first (gage shape SP500L) - 1)) + 1,] ;
yList := SP500L|[,0] ;
+.....+
Changed to :
UWS_result_and_error IS OP params
{ LOCAL model_calcs model_parts model_sum thetaNL weightL ;
NONLOCAL lambdaL thetaNL n_thetaN SP500L yList ;
Puetz_UWS_optimisation IS OP UWSmodel_phr colSelects y_start y_end y_step p_out
{ LOCAL n_particles E_CUTOFF MAXV MAXITER paramsGiven PSO_paramL
run_no thetaNL UWS_model weight weightL ;
NONLOCAL d_webRawe lambdaL n_thetaN SP500L UWS_2011 UWS_2014 yList ;
WRONG!!!
Oops - yList has to be numbers! same with many other inputs.
tabTable_readFrm_path returns strings!
link d_Qndfs 'Puetz - Universal Waves Series, header.ndf' returns [string colTitle, number]s
Puetz_UWS_optimisation Change :
+.....+
yList := SP500L|[,0] ;
+.....+
To :
+.....+
yList := EACH tonumber SP500L|[,0] ;
+.....+
>> I changed back
+-----+
#] 31Dec2020 YIKES!! shouldn't n_weights be weightL? ;
# Change
nWeights_lambdaL_thetaNL_list := n_weights EACHBOTH link lambdaL_thetaNL_list ;
To
nWeights_lambdaL_thetaNL_list := solitary (weightL EACHBOTH link lambdaL_thetaNL_list) ;
# As per :
UWS_regular_1870_2030 IS
{
n_series := 27 + (tell (35 - 27 + 1)) ;
n_weights := 1 + ((tell (gage shape n_series)) * 0.2) ;
pout := link d_Puetz 'Puetz UWS model for SP500 1870-2030 non-fitted.dat' ;
Puetz_UWS_model "UWS_2011 (1 3) 1870 2030 0.1 n_series n_weights pout ;
host link 'gnuplot "' d_Puetz 'Puetz UWS model for SP500 1870-2030 non-fitted.plt' '" ' ;
}
>> hugely misleading symbol!!, same as n_series
08********08
#] 30Dec2020 test the operators : [Puetz_UWS_optimisation, UWS_result_and_error, PSO_optimize]
for tests, see link d_Qtest 'optimize - particle swarm- test.ndf'
+-----+
Puetz_UWS_optimisation, so comment-out :
%PSO_optimize "UWS_result_and_error PSO_paramL ;
# Puetz_UWS_optimisation IS OP UWSmodel_phr colSelects y_start y_end y_step p_out
# Puetz_UWS_optimisation "UWS_2011 (1 3) 1870 2020 0.1 (link d_temp 'PSO_optimize output.txt')
>> OK, looks good after some quick fixes
31Dec2020
# Puetz_UWS_optimisation IS OP UWSmodel_phr colSelects y_start y_end y_step p_out -
PSO_optimize IS OP optrPhr PSO_paramL
Problem with column titles :
% drop the column titles (1st row) ;
SP500L := SP500L|[(tell (first (gage shape SP500L) - 1)) + 1,] ;
I [develop, test]ed :
# table_remove_colTitles_test IS - remove column titles from a table
>> works great
Now check :
SP500L := SP500L|[(tell (first (gage shape SP500L) - 1)) + 1,] ;
I put in a break, then check 1st 4 rows :
SP500L|[0 1 2 3,] (NYET! : table has not been transposed. I to switch row, columns in PSO optrs!)
qnial> Puetz_UWS_optimisation "UWS_2011 (1 3) 1870 2020 0.1 (link d_temp 'PSO_optimize output.txt')
-->[nextv] SP500L|[0 1 2 3,]
+-------+----+-------+
|1871.22|4.61|0.75694|
+-------+----+-------+
|1871.47|4.82|0.79136|
+-------+----+-------+
|1871.72|4.84|0.79458|
+-------+----+-------+
|1871.97|4.74|0.77810|
+-------+----+-------+
>> OK, no column titles
+-----+
#] 30Dec2020 UWS_result_and_error :
# UWS_result_and_error IS OP params
>> put in a flag break
# UWS_result_and_error params
As per 'optimize - particle swarm- test.ndf' :
>> I updated argument lists all three operators
+-----+
# UWS_result_and_error_test IS -
# check
NONLOCAL lambdaL n_thetaN SP500L yList ;
qnial> EACH (gage shape) lambdaL n_thetaN SP500L yList
+-++------+----+
|9||1466 3|1466|
+-++------+----+
qnial> n_thetaN
9
>> OK
qnial> UWS_result_and_error_test (with break)
?.. Model_parts := transpose mix ( Ylist Weightl Lambdal Thetanl )
-->[nextv]
?conform
> YIKES!! my code here is garbage!
08********08
#] 30Dec2020 SP500L.
vestigial? not used in code that I can see :
MAXXc := 100.0 ; % maximum particle ?value? ;
maxxs := DIMENSION reshape MAXXc ;
# for code tests - see link d_Qroot 'Working file.ndf'
Change :
+.....+
FOR agent WITH tell_agents DO
FOR i_param WITH tell_params DO
xx@(i_param agent) := (IRang_R - IRang_L) * ((random 1)/32767.0) + IRang_L ;
pbestx@(i_param agent) := xx@(i_param agent) ;
vx@(i_param agent) := MAXV * ((random 1) / 32767.0) ;
IF (((random 1)/32767.0) > 0.5) THEN vx@(i_param agent) := -vx@(i_param agent) ; ENDIF ;
ENDFOR ;
ENDFOR ;
+.....+
To :
+.....+
xx := (IRang_R - IRang_L) * (random n_params n_particles) + IRang_L ;
pbestx := xx ;
vx := MAXV * (random n_params n_particles) ;
+.....+
Change :
+.....+
vx@(i_param agent) := (weight_up * vx@(i_param agent))
+ (2 * ((random 1)/32767.0) * (pbestx@(i_param agent) - xx@(i_param agent)))
+ (2 * ((random 1)/32767.0) * (pbestx@(b gbest) - xx@(i_param agent))) ;
+.....+
To :
+.....+
vx@(i_param agent) := (weight_up * vx@(i_param agent))
+ ((random 1) * MAXV * (pbestx@(i_param agent) - xx@(i_param agent)))
+ ((random 1) * MAXV * (pbestx@(b gbest) - xx@(i_param agent))) ;
+.....+
Change :
+.....+
% Update positions, Define new coordinates ;
FOR particle WITH tell_particles DO
FOR i_param WITH tell_params DO xx@(i_param particle) := tx@(i_param particle) ; ENDFOR ;
ENDFOR ;
+.....+
To :
+.....+
% Update positions, Define new coordinates ;
xx := tx ;
+.....+
Change & move to start of 'FOR i WITH (tell run_no) DO' :
+.....+
IF (firsttime = 1) THEN pbest@particle := minval ; ENDIF ;
+.....+
To :
+.....+
pbest := n_particles reshape minval ; % initial pbests are zero? maximize not minimize? ;
+.....+
Removed :
error := 0.0 ; % lower end, so maximize not minimize? ;
??? pbest := n_particles reshape error ; % initial particle posn taken as best so far ;
qnial> SP500L := tabTable_readFrm_path (link d_webRaw 'economics, markets/SP500/multi-fractal/SP500 1872-2020 TradingView download.dat') ;
>> failed, ?no_value
Try Break : nyet - I had the wrong variable, p all that is one in PSO_optimize
Change :
+.....+
FOR i_particle WITH tell_particles DO
error := apply "optrPhr xx|[,i_particle] ;
IF (error < pbest@i_particle) THEN
pbest@i_particle := error ;
FOR i_param WITH tell_params DO
pbestx@(i_param i_particle) := xx@(i_param i_particle) ;
ENDFOR ;
IF (pbest@i_particle < pbest@gbest) THEN gbest := i_particle ; ENDIF ;
ENDIF ;
+.....+
To :
+.....+
FOR i_particle WITH tell_particles DO
error := apply "optrPhr xx|[,i_particle] ;
IF (error < pbest@i_particle) THEN
pbest@i_particle := error ;
pbestx@[,i_particle) := xx@(,i_particle) ;
IF (pbest@i_particle < pbest@gbest) THEN gbest := i_particle ; ENDIF ;
ENDIF ;
+.....+
08********08
#] 28Dec2020 Modelling SP500 with UWS
see :
link d_Qndfs 'Puetz - Universal Waves Series.ndf'
"$d_PROJECTS""/Investments/Puetz newsletter/Puetz - Universal Waves Series.ods"
# Testing code :
# y_start := 2010
# y_end := 2030
# y_step := 0.1
# same n_series for [2011, 24] :
# 2011 From 28.68d (0.0785216y) to 515y
# 2014 From 19.2048d (5.258E-02y) to 344y
# n_series := 27 + (tell (35 - 27 + 1))
# 88.4388 year cycle omitted for now!!!
# yList := y_start + ((tell (1 + (floor ((y_end - y_start) / y_step)))) * y_step)
# UWSmodel_phr := "UWS_2011
# UWS_model := execute UWSmodel_phr
# lambdaL_thetaNL_list := rows UWS_model|[n_series + 1,1 3]
# n_weights := 1 + ((tell (gage shape n_series)) * 0.2)
# lambdaL_thetaNL_nWeights_list := n_weights EACHBOTH link lambdaL_thetaNL_list
# model_parts := EACH link (cart (yList lambdaL_thetaNL_nWeights_list))
# model_calcs := EACH UWS_calc model_parts
# model_sum := EACH sum rows model_calcs
#] 29Dec2020 UWS_regular_2010_2030
IF flag_debug THEN write 'loading UWS_regular_2010_2030' ; ENDIF ;
# UWS_regular_2010_2030 IS -
UWS_regular_2010_2030 IS
{
n_series := 27 + (tell (35 - 27 + 1)) ;
n_weights := 1 + ((tell (gage shape n_series)) * 0.2) ;
pout := link d_Puetz 'Puetz UWS model for SP500 2010-2030 non-fitted.dat' ;
Puetz_UWS_model "UWS_2011 (1 3) 2010 2030 0.1 n_series n_weights pout ;
host link 'gnuplot "' d_Puetz 'Puetz UWS model for SP500 2010-2030 non-fitted.plt' '" ' ;
}
# olde code
n_output := floor ((y_end - y_start) / y_step) ;
FOR i WITH (tell n_output) DO
y_current := y_current + y_step ;
UWS_modelList := UWS_modelList link (UWS_n (cart (n_series (solitary y_reference) yList)) ;
ENDFOR ;
θnL_list := UWS_model|[n_series + 1,3] ;
# variable details
run_no = numbre of runs
int optrPhr; //0:Schaffer f6 1:sphere 2:Rosenbrock 3:generalized Rastrigrin
//4:generalized Griewank
float IRang_L, IRang_R; // initialization rang: left and right range
FVectorAllocate(&pbest, NUMBER_OF_AGENTS);
FVectorAllocate(&maxx, DIMENSION);
FMatrixAllocate(&vx, DIMENSION,NUMBER_OF_AGENTS);
FMatrixAllocate(&xx, DIMENSION,NUMBER_OF_AGENTS);
FMatrixAllocate(&tx, DIMENSION,NUMBER_OF_AGENTS);
FMatrixAllocate(&pbestx, DIMENSION,NUMBER_OF_AGENTS);
I changed lower case maxx to maxxy, but I can't se where it is used ...
************
#] 18Apr2020 Peutz no longer believes in 1929-style crash (gone past) still thinks a depression >1929 is coming?
p3h0.25 "... During the past week, the widely followed stock market indices (such as the S&P 500 and the NASDAQ Index) further extended their Wave-2 rallies. Thus, the Wave-2 counter trend advance is now extended to 7 weeks after the primary top, which no longer mimics the 1929 and 1987 analogies discussed in the last letter. Despite this difference, a Wave-2 advance is generally followed by a Wave-3 decline, which has not yet happened. Today's letter explains why a looming Wave-3 crash remains the preferred interpretation for the coming weeks. ..."
>> Peutz no longer believes in 1929-style crash, as we've gone past that, but he still thinks a depression >1929 is coming.
p3h0.75 "... In this environment, consider the explosive ascent in the Federal Reserve's balance sheet (top of page 14), leveraged commercial bank holdings (middle of page 14), and the inverted LIBOR yield curve (bottom of page 14) as signals of the extreme stress in credit markets. In recent weeks, banks and the Federal Reserve bought an additional $3 trillion in assets that no one else wants. As the unwanted assets proliferate in coming weeks, stock prices will collapse massively in a thunderous crash. Remain explicitly bearish until panic selling runs its course. ..."
>> Puetz does NOT mention that index prices may be more a reflection of government social engineering of financial markets, than of [economic, market] realities.
>> he does mention this in previous newsletters (eg 28Mar2020 below) - "debt addicts".
************
#] 28Mar2020 Puetz newsletter - postings to my [webste, Facebook]
Steve Puetz, Editor, UNIVERSAL CYCLE THEORY FINANCIAL NEWSLETTER, 28Mar2020
http://www.uct-news.com
"... Instead, the toxic credit policies are equivalent to a drug dealer peddling crystal meth to an addict. The Federal Reserve acts as the drug dealer – always promising that its new credit policies are temporary boosts, and always encouraging the private sector to borrow more toxic debt. At the same time, private sector debt addicts become increasingly dependent on higher doses of the credit-drug, until the point where our economy is now dying from repeated credit-overdoses. Thus, the view expressed here is quite different from the mainstream consensus. Specifically, easy credit is the problem, not the solution. Moreover, our highly leveraged financial system is the primary problem, not the coronavirus. The coronavirus is simply the pin that pricked the massive bubble – a bubble that cannot and will not be re-inflated anytime soon. Solving the coronavirus problem will not and cannot restore our financial system to its previous bubbly state. The bubble has already burst. ..."
Steve Puetz has beaten every forecaster that I know for the current market. (I don't know many of the really good ones, but trash forecasters are the rule not just in academia (as we would expect), but also on the street.). He was expecting a 1929-style crash for last fall, but if I remember correctly, at that time emergency Fed funding (300 G$ late Aug-ep, 450 G$ -Jan (non-QE QE was the joke) delayed the problem.
I have been following "the bear among bears of Wall Street"'s financial newsletter for a year now. I have not actively invested for 15+ years, but I came across the newsletter after reading some STUNNING [astronomy, history, geology, palontology, psychology]-related [papers, books] [, co-]authored by Steven Puetz. These were centered around his results with a "Universal Wave Series", which is kind of like the system of 20+ Mayan calendars on steroids, expanded my a few tera-years or so of timescale, and at least a few multiples of subject areas.
********************
#] 11Mar2019 Puetz & Borchardt emails to Stephen [Yaskell, Howell]
Puetz & Borchardt web-directory
Puetz 13Jan2019 financial newsletter - 88 year cycle and harmonics
Puetz financial newsletter
Table of civilization collapses
Howells chart of the Sun and civilisations
*******************
#] 01Mar2019 Borchardt's "infinity" - far beyond other scientists
BIG strengths :
Borchardt's "infinity" - far beyond other scientists
Creative, unique, divergent thinking -
[identifies, light analysis] of big, fundamental failures of current dominant, [politically-correct] scientific religions
Observations over established theories
- not trapped into seeing only what has to be true,
- but their "new truth" does have a bit of the same blinding effect? (George Orwell's Animal farm)
- we really don't need theories, the data can speak for itself
It's hard to read past my own [biases, need for math & formulae, weakness with descriptive science]
Sometimes developments are slow, and I get impatient, almost quit, but I think Borchardt has taken the right approach to his theme development, I just have to be more patient
- one cannot be patient with everything
- there just isn't time to read deeply into more than 2 or 3 "multiple cnflicting hypothesis"
Questions :
What about fractional order calculus?
What about relationship to Mayan calendars?
What about base [sqrt(2), 2, e] rather than base 3 for cycles?
- base e gives simpke math - huge advantage for stability analysis etc!
***************
#] 25Nov2015 Puetz, Borchardt 150925 Quasi-periodic fractal patterns in geomag reversals, activity, astro-events
Puetz, Stephen J., Prokoph, Andreas, Borchardt, Glenn, and Mason, Edward W., 2014, Evidence of Synchronous, Decadal to Billion Year Cycles in Geological, Genetic, and Astronomical Events: Chaos, Solitons & Fractals, v. 62–63, p. 55-75 [ http://dx.doi.org/10.1016/j.chaos.2014.04.001].
Puetz, Prokoph, Borchardt, Mason 2014 Evidence of Synchronous, Decadal to Billion Year Cycles in Geological, Genetic, and Astronomical Events
Puetz, Borchardt 150925 Quasi-periodic fractal patterns in geomagnetic reversals, geological activity, and astronomical events
24Nov2015 - highly cited :
J. Tenreiro Machado, Virginia Kiryakova, Francesco Mainardi 11mmdd "Recent history of fractional calculus" Commun Nonlinear Science & Numerical Simulation, Elsevier, 16 (2011) pp1140-1153
# enddoc