%%file MyFixedPoint.m
function [xs] = MyFixedPoint(g, x1, tol)
xs = [x1];
err = Inf;
while err > tol
xs = [xs g(xs(end))];
err = abs(xs(end) - xs(end-1));
end
end
Lab 3 - Fixed point methods
Introduction
Our goal is to find the fixed point of a function \(g(x)\), that is, the value \(x^*\) such that \(x^*= g(x^*)\) (if it exists). If \(|g'(x^{*})|<1\), we can find the fixed point by iteration if we start sufficiently close to \(x^*\).
For the example problem \(g(x) = \cos{(x)}\), we can begin with an initial guess \(x_1=0.5\) and find the next point, \(x_2\), by applying \(g\): \(x_2=g(x_1)\). We repeat this process \(n\) times to find \(x_{n+1}=g(x_n)\). This can be summarized in the following table:
| n | $ x_n$ | $x_{n+1}=(x_n) $ | $ E_n= |
|---|---|---|---|
| 1 | 0.5000 | 0.8775 | 0.3775 |
| 2 | 0.8775 | 0.6390 | 0.2385 |
| 3 | 0.6390 | 0.8026 | 0.1636 |
| 4 | 0.8026 | 0.6947 | 0.1079 |
| 5 | 0.6947 | 0.7681 | 0.0734 |
| 6 | 0.7681 | 0.7191 | 0.0490 |
| 7 | 0.7191 | 0.7523 | 0.0331 |
| 8 | 0.7523 | 0.7300 | 0.0222 |
| 9 | 0.7300 | 0.7451 | 0.0150 |
| 10 | 0.7451 | 0.7350 | 0.0101 |
| 11 | 0.7350 | 0.7418 | 0.0068 |
This table shows an iteration \(n\), the \(x\) value \(x_n\), the result of the iteration \(x_{n+1} = \cos(x_n)\), and the difference between the current step and the next \(E_n = |x_n - x_{n+1}|\). Note that the difference in \(x_i\) between each step gets smaller and smaller as we iterate. This shows that we are indeed approaching a fixed point. In this case, if we continue we will eventually converge to the fixed point \(x^*\approx0.739085133\).
This process is only guaranteed to converge if \(|g'(x^*)|<1\). In this case, \(g(x)\) is “contracting” around \(x^*\). To see this contraction visually, we can consider the following image:
In this image, the dashed line represents the line \(y=x\), so the arrows go from \((x_1, g(x_1))\to (x_2, x_2) \to (x_2, g(x_2)) \to \ldots (x_4, g(x_4)\).
In practice, we do not know when we have arrived at the fixed point \(x^*\), so we instead stop by looking at the difference between iterations: \(E_n = |x_{n+1} - x_n|\). When this difference becomes sufficiently small, we can assume that we have the best answer that the fixed point method can give us.
Below is a program that performs fixed point iteration for a given function \(g(x)\). The convergence criterion for the program will be given by the error condition which can be written as: \[ \begin{align*} E_n={|x_{n+1} - x_n|} <\text{ tol} \end{align*} \] where tol is a given tolerance.
Newton’s Method
Newton’s method is a fixed point iteration that converges to the root of a function \(f(x)\). It uses the iteration function: \[ \begin{align*} g(x) = x - \frac{f(x)}{f'(x)} .\end{align*} \] Analyzing this function, we can see that the fixed point \(x^*\) for \(g(x)\) is also the root of \(f(x)\): \[ \begin{align*} g(x^*) &= x^{*} \\ x^* - \frac{f(x^*)}{f'(x^*)}&= x^* \\ - \frac{f(x^*)}{f'(x^*)} &= 0 \\ f(x^*) &= 0 \end{align*} \] as long as \(f'(x^*) \neq 0\).
Convergence
This method was published in 1685 but is still one of the state-of-the-art methods for root finding because it “converges” so quickly. The idea of convergence is key to numerical methods and refers to the rate at which the error decreases as you perform more iterations. The easiest way to illustrate convergence is to consider the Taylor series of our fixed point iteration centered at \(x^*\): \[ \begin{align*} g(x_{n}) &= g(x^*) + g'(c)(x_{n}-x^*) \end{align*} \] for some \(c \in (x^*, x_{n})\). We can then substitute \(g(x_{n}) = x_{n+1}\) and rearrange to get: \[ \begin{align*} g(x_{n}) &= g(x^*) + g'(c)(x_{n}-x^*) \\ x_{n+1} &= x^* + g'(c)(x_{n} - x^*) \\ \frac{x_{n+1} - x^*}{x_{n}-x^*} &= g'(c)\\ \frac{|x_{n+1} - x^*|}{|x_{n}-x^*|} &= |g'(c)| < 1\\ \end{align*} \] as long as \(c\) is close enough to \(x^*\). Thus, we know that \(|x_n - x^*|\) is larger than \(|x_{n+1} - x^*|\) which means we are getting closer and closer to the fixed point with each iteration. We also know that the error at step \(n+1\) over the error at step \(n\) is some constant \(g'(c)\). If \(g'(c) \neq 0\) and \(g'(c) < 1\), then this is called “first-order” convergence. This means, for example, if our error at step \(n\) is \(\frac{1}{2}\) and our constant is \(1\), our error will be reduced by \(\frac{1}{2}\) after 1 step.
However, if our fixed point iteration has the property that \(g'(x^*) = 0\), then we have to take a higher-order Taylor series: \[ \begin{align*} g(x_{n}) &= g(x^*) + g'(x^*)(x_{n}-x^*) +\frac{1}{2} g"(c)(x_{n}-x^*)^2 \\ x_{n+1} &= x^* + \frac{1}{2} g"(c)(x_{n}-x^*)^2 \\ \frac{x_{n+1} - x^*}{(x_n - x^*)^2} &= \frac{1}{2} g"(c) \\ \frac{|x_{n+1} - x^*|}{|x_n - x^*|^2} &= \frac{1}{2} |g"(c)| = C .\end{align*} \] Now, the error at step \(n+1\) over the SQUARE of the error at the previous step is equal to a constant. This is called “second-order” convergence. This means, for example, if our error at step \(n\) is \(\frac{1}{2}\) and the constant is \(1\), then our error will be reduced by \(\frac{1}{2}^{2} = \frac{1}{4}\) after 1 step. Thus, it will take far fewer iterations to converge on the true answer. Newton’s method is a “second-order” method.
One way to test this convergence is by assuming we are near the fixed point and considering: \[ \begin{align*} E_n = |x_{n} - x_{n-1}| \end{align*} \] then we can write the convergence definition approximately as: \[ \begin{align*} C = \frac{|x_{n+1} - x^*|}{|x_n - x^*|^d} &\approx \frac{|x_{n+1} - x_n|}{|x_n - x_{n-1}|^d} \\ &= \frac{E_n}{(E_{n-1})^d} \end{align*} \] where \(C\) is some constant and \(d\) is our order of convergence. This approximation really only makes sense when \(x_n\) and \(x_{n-1}\) are close to \(x^*\). However, we can check this version numerically by computing the error \(E_n\) of our method and then trying \(\frac{E_n}{E_{n-1}^d}\) with different values of \(d\) to see which one is roughly constant.
Examples
The following is a Matlab function that takes in a contraction function \(g\), a starting value \(x_1\), and an error tolerance . It outputs an array that contains all your iteration values: \(x = [x_1, x_2, x_3, \ldots, x_N]\). The convergence criteria for the function is the error: \(|x_{n+1} - x_n| < \text{tol}\).
Testing this function on \(g(x) = \sin(x-5)\) with starting point \(x_1 = 1\) and a tolerance of \(10^{-7}\) is close to \(0.847\):
g = @(x) sin(x - 5);
p1 = MyFixedPoint(g, 1, 1e-7);
p1(end)
ans =
0.8474
Newton’s method
Consider finding the root of the function \(f(x) = x - \cos(x) - 1\). To find the root of this function with Newton’s method, we need to reformulate it as a fixed point problem in which the fixed point is the root. This can be easily done by considering: \[ \begin{align*} f'(x) &= 1 + sin(x) \\ g(x) &= x - \frac{f(x)}{f'(x)} \\ &= x - \frac{x - \cos(x) -1 }{1 + \sin(x)} \end{align*} \] To approximate the root of the function with an initial guess of \(x_1 = 2.5\) and a tolerance of \(10^{-10}\):
g = @(x) x - ((x - 1 - cos(x))/ (1 + sin(x)));
xVec] = MyFixedPoint(@(x)g(x), 2.5, 1e-10);
[errorVec = [0 abs(xVec(2:end) - xVec(1:end-1))];
nVec=1:1:length(xVec);
p2_table = table(transpose(nVec), transpose(xVec), transpose(errorVec));
p2_table.Properties.VariableNames=["n", "x_n", "E_n"]; disp(p2_table);
n x_n E_n
_ ______ __________
1 2.5 0
2 1.0604 1.4396
3 1.289 0.22862
4 1.2834 0.0055993
5 1.2834 2.2394e-06
6 1.2834 3.6282e-13
If we make a table with the ratios \(\frac{E_n}{E_{n-1}}\), \(\frac{E_n}{(E_{n-1})^2}\), and \(\frac{E_n}{(E_{n-1})^3}\) the preivous results, we can examine an approximate convergence rate for the method:
errorVec = [0 abs(xVec(2:end) - xVec(1:end-1))];
ratio1 = errorVec(2:end) ./ errorVec(1:end-1);
ratio2 = errorVec(2:end) ./ (errorVec(1:end-1) .^2);
ratio3 = errorVec(2:end) ./ (errorVec(1:end-1) .^3);
p2_table = table(ratio1', ratio2', ratio3');
p2_table.Properties.VariableNames=["E_n / E_n-1", "E_n / E_n-1^2", "E_n / E_n-1^3"];
disp(p2_table);
E_n / E_n-1 E_n / E_n-1^2 E_n / E_n-1^3
___________ _____________ _____________
Inf Inf Inf
0.15881 0.11032 0.07663
0.024492 0.10713 0.46859
0.00039994 0.071426 12.756
1.6202e-07 0.07235 32308
In this, we can see that the second column (which represents a roughly quadratic convergence) is roughly constant, demonstrating that this ratio is holding true. On the other hand, the first column decays to 0, showing that the errors
Stability of fixed points
Consider the function \(g(x) = 1.8x - x^2\) which has fixed points \(x=0\) and \(x=0.8\). If we use an initial guess \(x_1 = 0.1\) and tolerance \(10^{-5}\):
g = @(x) 1.8*x - x^2;
p3 = MyFixedPoint(g, .1, 1e-5);
disp(p3(end))
0.8000
We approach the fixed point \(x=0.8\) because it is a stable (attracting) fixed point. On the other hand, if we start at \(x_1 = -0.1\):
g = @(x) 1.8*x - x^2;
p3 = MyFixedPoint(g, -0.1, 1e-5);
disp(['Final answer: ', num2str(p3(end))])
Final answer: -Inf
We are no longer in the basin of attraction of \(x=0.8\) and so our iteration is expelled from the unstable fixed point \(x=0\).


--- layout: default title: About me ---
I am a PhD candidate in the department of Brain and Cognitive Sciences at MIT. I am interested in studying neural circuits that underlie complex behavior and cognition.
In my free time, I play soccer, chess and piano
Email: nmle at mit dot edu


I’m in my first stretch in 10 (YES 10!) years without having a baby so instead of producing yet another member to our ever growing Team Elam band, I’m starting MOMMY KNOWS BEST for everything great and good and beneficial about having a family! There are sooooo many sales out there, sales to buy for comfort, for savings, for economics and the bottom line is - you just don’t need them all! - not by a long shot! So here I am, with a hard earned decade behind me to share with you the fun and functional things that really do make a difference and that get the Mommy Knows Best seal of approval!
xoxo, Jen


Set keepInView
Add popup within bounds
Add popup slightly beyond bounds
Add popup far away
Move last popup


The following internet resources can help you discover more about our nation's history and system of government.
The
United States House of
Representatives
http://www.house.gov/
Find the offices for our 3 representatives.
United
States Legislative Branch
http://lcweb.loc.gov/global/legislative/congress.html
Who are the most senior Members of the House and Senate, and
for how long have they served?
United
States Executive Branch
http://lcweb.loc.gov/global/executive/fed.html
You can find the pages for all departments--Department of
Defense, Department of Education, Department of State, etc.
The
Federal Judiciary
Homepage
http://www.uscourts.gov/
Which judges are elected and which are appointed?
Office
of the First Lady
http://www.whitehouse.gov/firstlady/
Check out Laura Welch Bush’s biography plus biographies of former
First Ladies. Which First Lady prevented a painting of George Washington from burning when the White House was set on fire during the War of 1812?
The United
States Capitol
http://www.aoc.gov/
The Capitol is the centerpiece of the
Capitol Complex. How many buildings make up the entire complex and
what are they? (The White House is not part of the Capitol
Complex!)
State
and Local Governments
http://lcweb.loc.gov/global/state/stategov.html
Government sites for all 50 states.
The
Constitution of the United
States
http://www.nara.gov/exhall/charters/constitution/conmain.html
How were deputies to the Constitutional Convention chosen?
National
Constitution Center
http://www.constitutioncenter.org/
Learn about the U.S. Constitution. How many amendments are
there? According to the Constitution, a person must meet certain
requirements in order to be eligible to be elected president. What
are these requirements?
Constitution
Finder
http://confinder.richmond.edu/
Find the constitution of any country in the world. The
constitution of Eritrea was adopted in July 1996. Where is
Eritrea?
US
Census Bureau : American Fact
Finder
http://factfinder.census.gov/java_prod/dads.ui.homePage.HomePage
The "Community Profiles" section provides a way to find
information about your city or any other US city or county. To find a
profile: 1. Select the type of region you want (choose "Metropolitan
Statistical Area" which means "cities"). 2. Click the radio button
beside the specific area and click "Select Profile." 3. Select the
particular report you'd like and click "View Profile." From the main
page, you can also view special thematic maps that graphically
display population trends.
The
White House for Kids
http://www.whitehouse.gov/kids/
Take a virtual tour of the White House with Spotty the President’s English Springer Spaniel as your tour guides.
The
US Department of Justice for
Kids
http://www.usdoj.gov/usao/eousa/kidspage/index.html
You can follow along with the facts from an actual FBI case
and learn about the legal system: the investigation, the decision to
charge, the pretrial activities, the hearings, the trial, sentencing,
and appeal.
CIA
Kids Page
http://www.cia.gov/cia/ciakids/index.html
Enter the Kids' Secret Zone. There are "Aerial Photography
Pigeons"! Don't miss the "Try a Disguise" game. (It requires the
Shockwave plug-in).
Facts about the USA: InfoUSA
Works
http://usinfo.state.gov/usa/infousa/facts/facts.htm
Under what circumstances did Patrick Henry say, "Give me
liberty or give me death"?
The Federal
Bureau of Investigations
(FBI)
http://www.fbi.gov/
The FBI actually has a children's page! From the menu on the
left, select "Kids and Youth Educational Page" to learn more about
the criminal law system. The FBI also has a Parent's
Guide to Internet Safety.
Foreign
Governments
http://www.library.nwu.edu/govpub/resource/internat/foreign.html
A resource guide to the official web sites of government
offices around the world. Look through some of these sites and find
out how many of them have a version that is in English. Is English
the international language?
Address
Directory for the Politicians of the
World
http://www.trytel.com/~aberdeen/index.html
Monarchs, presidents, prime ministers, provincial
governors....find their email address or snail mail address.
Rulers
http://rulers.org/
This site contains lists of heads of state and heads of
government of all countries and territories, usually going back to at
least 1900. Who was the Supreme Dictator of Paraguay from Oct .3,
1814 to Sept. 20, 1840 ?
Kids
Voting USA
http://www.kidsvotingusa.org/
Find out how to become involved in the election process.
Lincoln
Memorial
http://www.nps.gov/linc/home.htm
Architect Henry Bacon modeled his design for the Lincoln
Memorial after what famous Greek structure?
Washington
Monument
http://www.nps.gov/wamo/home.htm
"The Washington Monument is 555 feet tall. It has 897 steps
which are now closed to the public except for ranger-led tours. An
elevator takes visitors on the 70 second trip up to the 500 foot
landing for magnificent views of the city."
Jefferson
Memorial
http://www.nps.gov/thje/home.htm
"Architect John Russell Pope incorporated Jefferson's own
architectural tastes into the design of the memorial. The memorial,
like Jefferson's home Monticello, is based on the Roman
Pantheon."
Independence
National Historical Park
http://www.nps.gov/inde/visit.html
They wrote the Declaration of Independence AND the
constitution at Independence Hall.
National
Constitution Center
http://www.constitutioncenter.org/
The oldest participant at the Constitutional Convention was Benjamin
Franklin, of Pennsylvania, who was 81. The youngest participant was
Jonathan Dayton, of New Jersey, who was 26. From the main menu on
this page, you can choose "Kids Corner" and take a 13 question test
about the constitution. Teachers can select "Teacher Resources" and
find lesson plans and instructions on how to order free copies of the
constitution for classroom use.
The
Declaration of
Independence
http://www.nara.gov/exhall/charters/declaration/decmain.html
From the National Archives and Records
Administration. "The original Declaration, now exhibited in the
Rotunda of the NationalArchives Building in Washington, DC, has faded
badly--largely because of poor preservation techniques during the
19th century. Today, this priceless document is maintained under the
most exacting archival conditions possible."
The
Bill of Rights
http://www.archives.gov/
"During the debates on the adoption of
the Constitution, its opponents repeatedly charged that the
Constitution as drafted would open the way to tyranny by the central
government. Fresh in their minds was the memory of the British
violation of civil rights before and during the Revolution. They
demanded a "bill of rights" that would spell out the immunities of
individual citizens."
The
Constitution of the United
States
http://www.archives.gov/
You can read a transcription of the
complete text as well as information about the signers. Which signers
was a doctor who treated both British and American soldiers during
the Revolutionary War?
The
Founding Fathers
http://www.nara.gov/exhall/charters/constitution/confath.html
"In all, 55 delegates attended the
Constitutional Convention sessions, but only 39 actually signed the
Constitution. The delegates ranged in age from Jonathan Dayton, aged
26, to Benjamin Franklin, aged 81, who was so infirm that he had to
be carried to sessions in a sedan chair."
| A
service of the Utah Education Network Comments, e-mail<EMAIL_ADDRESS>|


S
Former Developer & Founding Member at Fantasmo Studios, Previously started Decimated Sanity. Currently working on some experiments, freelancing, and getting my hands dirty with Machine Learning.


This inspection detects the case where the type of a VarHandle or the signature of a MethodHandle doesn't match the actual field or method.
It also detects if a static field/method is accessed in non-static way and vice versa.


A very simple calculator
number A:
number B:
operator:
{app.op_select}
0.0
timer (seconds):
{app.target_ops:d}
nearly done?


Manage the number of active worker threads.
The ThreadGate limits the number of threads that are simultaneously
active in order to implement adaptive rate control.
Initially the ThreadGate allows only one thread to be active. For
each successful work item, another thread is activated and for each
failed item, the number of active threads is reduced by one. When only
one thread is active, failures will cause exponential backoff.
For example, a ThreadGate instance, thread_gate can be used in a number
of threads as so:
# Block until this thread is enabled for work.
thread_gate.StartWork()
try:
status = DoSomeWorkInvolvingLimitedSharedResources()
succeeded = IsStatusGood(status)
badly_failed = IsStatusVeryBad(status)
finally:
if succeeded:
# Succeeded, add more simultaneously enabled threads to the task.
thread_gate.FinishWork(instruction=ThreadGate.INCREASE)
elif badly_failed:
# Failed, or succeeded but with high resource load, reduce number of
# workers.
thread_gate.FinishWork(instruction=ThreadGate.DECREASE)
else:
# We succeeded, but don't want to add more workers to the task.
thread_gate.FinishWork(instruction=ThreadGate.HOLD)
the thread_gate will enable and disable/backoff threads in response to
resource load conditions.
StartWork can block indefinitely. FinishWork, while not
lock-free, should never block absent a demonic scheduler.


Release History
Release and change history for rapidsms-twilio
v0.2.0 (Released 2013-06-21)
Improved callback functionality and added needed tests:
- Remove callback URL field. It’s not needed.
- Require POST on callback view.
- Add tests to callback view.
Bug Fixes
- Fixed issue where using a port with the callbark URL caused an error.
v0.1.0 (Released 2013-06-10)
Update for RapidSMS 0.13+.
v0.0.1 (Released 2010-07-26)


TQ3Error |
typedef enum QUESA_ENUM_BASE(TQ3Int32) { kQ3ErrorNone = 0, kQ3ErrorFirst = -28500, kQ3ErrorInternalError = -28500, kQ3ErrorNoRecovery = -28499, kQ3ErrorLastFatalError = -28498, kQ3ErrorNotUsedByQD3D_1 = -28497, kQ3ErrorNotUsedByQD3D_2 = -28496, kQ3ErrorNotUsedByQD3D_3 = -28495, kQ3ErrorNotUsedByQD3D_4 = -28494, kQ3ErrorNotUsedByQD3D_5 = -28493, kQ3ErrorNotUsedByQD3D_6 = -28492, kQ3ErrorNotUsedByQD3D_7 = -28491, kQ3ErrorNotInitialized = -28490, kQ3ErrorAlreadyInitialized = -28489, kQ3ErrorUnimplemented = -28488, kQ3ErrorRegistrationFailed = -28487, kQ3ErrorUnixError = -28486, kQ3ErrorMacintoshError = -28485, kQ3ErrorX11Error = -28484, kQ3ErrorMemoryLeak = -28483, kQ3ErrorOutOfMemory = -28482, kQ3ErrorNULLParameter = -28481, kQ3ErrorParameterOutOfRange = -28480, kQ3ErrorInvalidParameter = -28479, kQ3ErrorInvalidData = -28478, kQ3ErrorAcceleratorAlreadySet = -28477, kQ3ErrorVector3DNotUnitLength = -28476, kQ3ErrorVector3DZeroLength = -28475, kQ3ErrorInvalidObject = -28474, kQ3ErrorInvalidObjectClass = -28473, kQ3ErrorInvalidObjectType = -28472, kQ3ErrorInvalidObjectName = -28471, kQ3ErrorObjectClassInUse = -28470, kQ3ErrorAccessRestricted = -28469, kQ3ErrorMetaHandlerRequired = -28468, kQ3ErrorNeedRequiredMethods = -28467, kQ3ErrorNoSubClassType = -28466, kQ3ErrorUnknownElementType = -28465, kQ3ErrorNotSupported = -28464, kQ3ErrorNoExtensionsFolder = -28463, kQ3ErrorExtensionError = -28462, kQ3ErrorPrivateExtensionError = -28461, kQ3ErrorDegenerateGeometry = -28460, kQ3ErrorGeometryInsufficientNumberOfPoints = -28459, kQ3ErrorNoStorageSetForFile = -28458, kQ3ErrorEndOfFile = -28457, kQ3ErrorFileCancelled = -28456, kQ3ErrorInvalidMetafile = -28455, kQ3ErrorInvalidMetafilePrimitive = -28454, kQ3ErrorInvalidMetafileLabel = -28453, kQ3ErrorInvalidMetafileObject = -28452, kQ3ErrorInvalidMetafileSubObject = -28451, kQ3ErrorInvalidSubObjectForObject = -28450, kQ3ErrorUnresolvableReference = -28449, kQ3ErrorUnknownObject = -28448, kQ3ErrorStorageInUse = -28447, kQ3ErrorStorageAlreadyOpen = -28446, kQ3ErrorStorageNotOpen = -28445, kQ3ErrorStorageIsOpen = -28444, kQ3ErrorFileAlreadyOpen = -28443, kQ3ErrorFileNotOpen = -28442, kQ3ErrorFileIsOpen = -28441, kQ3ErrorBeginWriteAlreadyCalled = -28440, kQ3ErrorBeginWriteNotCalled = -28439, kQ3ErrorEndWriteNotCalled = -28438, kQ3ErrorReadStateInactive = -28437, kQ3ErrorStateUnavailable = -28436, kQ3ErrorWriteStateInactive = -28435, kQ3ErrorSizeNotLongAligned = -28434, kQ3ErrorFileModeRestriction = -28433, kQ3ErrorInvalidHexString = -28432, kQ3ErrorWroteMoreThanSize = -28431, kQ3ErrorWroteLessThanSize = -28430, kQ3ErrorReadLessThanSize = -28429, kQ3ErrorReadMoreThanSize = -28428, kQ3ErrorNoBeginGroup = -28427, kQ3ErrorSizeMismatch = -28426, kQ3ErrorStringExceedsMaximumLength = -28425, kQ3ErrorValueExceedsMaximumSize = -28424, kQ3ErrorNonUniqueLabel = -28423, kQ3ErrorEndOfContainer = -28422, kQ3ErrorUnmatchedEndGroup = -28421, kQ3ErrorFileVersionExists = -28420, kQ3ErrorViewNotStarted = -28419, kQ3ErrorViewIsStarted = -28418, kQ3ErrorRendererNotSet = -28417, kQ3ErrorRenderingIsActive = -28416, kQ3ErrorImmediateModeUnderflow = -28415, kQ3ErrorDisplayNotSet = -28414, kQ3ErrorCameraNotSet = -28413, kQ3ErrorDrawContextNotSet = -28412, kQ3ErrorNonInvertibleMatrix = -28411, kQ3ErrorRenderingNotStarted = -28410, kQ3ErrorPickingNotStarted = -28409, kQ3ErrorBoundsNotStarted = -28408, kQ3ErrorDataNotAvailable = -28407, kQ3ErrorNothingToPop = -28406, kQ3ErrorUnknownStudioType = -28405, kQ3ErrorAlreadyRendering = -28404, kQ3ErrorStartGroupRange = -28403, kQ3ErrorUnsupportedGeometryType = -28402, kQ3ErrorInvalidGeometryType = -28401, kQ3ErrorUnsupportedFunctionality = -28400, kQ3ErrorInvalidPositionForGroup = -28399, kQ3ErrorInvalidObjectForGroup = -28398, kQ3ErrorInvalidObjectForPosition = -28397, kQ3ErrorScaleOfZero = -28396, kQ3ErrorBadStringType = -28395, kQ3ErrorAttributeNotContained = -28394, kQ3ErrorAttributeInvalidType = -28393, kQ3ErrorInvalidCameraValues = -28392, kQ3ErrorBadDrawContextType = -28391, kQ3ErrorBadDrawContextFlag = -28390, kQ3ErrorBadDrawContext = -28389, kQ3ErrorUnsupportedPixelDepth = -28388, kQ3ErrorController = -28387, kQ3ErrorTracker = -28386, kQ3ErrorWin32Error = -28385, kQ3ErrorTypeAlreadyExistsAndHasSubclasses = -28384, kQ3ErrorTypeAlreadyExistsAndOtherClassesDependOnIt = -28383, kQ3ErrorTypeAlreadyExistsAndHasObjectInstances = -28382, kQ3ErrorPickingLoopFailed = -28381, kQ3ErrorRenderingLoopFailed = -28380, kQ3ErrorWritingLoopFailed = -28379, kQ3ErrorBoundingLoopFailed = -28378, kQ3ErrorPlatformError = -28377, kQ3ErrorInfiniteRationalPoint = -28376, kQ3ErrorTriMeshPointIndexOutOfRange = -28375, #endif // QUESA_ALLOW_QD3D_EXTENSIONS kQ3ErrorLast, kQ3ErrorSize32 = 0x7FFFFFFF } TQ3Error;
Quesa error constants.
- kQ3ErrorNone
- No error.
- kQ3ErrorInternalError
- Internal error.
- kQ3ErrorNoRecovery
- No recovery.
- kQ3ErrorLastFatalError
- Last fatal error.
- kQ3ErrorNotInitialized
- Not initialized.
- kQ3ErrorAlreadyInitialized
- Already initialized.
- kQ3ErrorUnimplemented
- Unimplemented.
- kQ3ErrorRegistrationFailed
- Registration failed.
- kQ3ErrorUnixError
- Unix error.
- kQ3ErrorMacintoshError
- Macintosh error.
- kQ3ErrorX11Error
- X11 error.
- kQ3ErrorMemoryLeak
- Memory leak.
- kQ3ErrorOutOfMemory
- Out of memory.
- kQ3ErrorNULLParameter
- nullptr parameter.
- kQ3ErrorParameterOutOfRange
- Parameter out of range.
- kQ3ErrorInvalidParameter
- Invalid parameter.
- kQ3ErrorInvalidData
- Invalid data.
- kQ3ErrorAcceleratorAlreadySet
- Accelerator already set.
- kQ3ErrorVector3DNotUnitLength
- Vector3D not unit length.
- kQ3ErrorVector3DZeroLength
- Vector3D zero length.
- kQ3ErrorInvalidObject
- Invalid object.
- kQ3ErrorInvalidObjectClass
- Invalid object class.
- kQ3ErrorInvalidObjectType
- Invalid object type.
- kQ3ErrorInvalidObjectName
- Invalid object name.
- kQ3ErrorObjectClassInUse
- Object class in use.
- kQ3ErrorAccessRestricted
- Access restricted.
- kQ3ErrorMetaHandlerRequired
- Meta handler required.
- kQ3ErrorNeedRequiredMethods
- Need required methods.
- kQ3ErrorNoSubClassType
- No sub class type.
- kQ3ErrorUnknownElementType
- Unknown element type.
- kQ3ErrorNotSupported
- Not supported.
- kQ3ErrorNoExtensionsFolder
- No extensions folder.
- kQ3ErrorExtensionError
- Extension error.
- kQ3ErrorPrivateExtensionError
- Private extension error.
- kQ3ErrorDegenerateGeometry
- Degenerate geometry detected.
- kQ3ErrorGeometryInsufficientNumberOfPoints
- Geometry has an insufficient number of points.
- kQ3ErrorNoStorageSetForFile
- No storage set for file.
- kQ3ErrorEndOfFile
- End of file.
- kQ3ErrorFileCancelled
- File cancelled.
- kQ3ErrorInvalidMetafile
- Invalid metafile.
- kQ3ErrorInvalidMetafilePrimitive
- Invalid metafile primitive.
- kQ3ErrorInvalidMetafileLabel
- Invalid metafile label.
- kQ3ErrorInvalidMetafileObject
- Invalid metafile object.
- kQ3ErrorInvalidMetafileSubObject
- Invalid metafile sub object.
- kQ3ErrorInvalidSubObjectForObject
- Invalid sub object for object.
- kQ3ErrorUnresolvableReference
- Unresolvable reference.
- kQ3ErrorUnknownObject
- Unknown object.
- kQ3ErrorStorageInUse
- Storage in use.
- kQ3ErrorStorageAlreadyOpen
- Storage already open.
- kQ3ErrorStorageNotOpen
- Storage not open.
- kQ3ErrorStorageIsOpen
- Storage is open.
- kQ3ErrorFileAlreadyOpen
- File already open.
- kQ3ErrorFileNotOpen
- File not open.
- kQ3ErrorFileIsOpen
- File is open.
- kQ3ErrorBeginWriteAlreadyCalled
- Begin write already called.
- kQ3ErrorBeginWriteNotCalled
- Begin write not called.
- kQ3ErrorEndWriteNotCalled
- End write not called.
- kQ3ErrorReadStateInactive
- Read state inactive.
- kQ3ErrorStateUnavailable
- State unavailable.
- kQ3ErrorWriteStateInactive
- Write state inactive.
- kQ3ErrorSizeNotLongAligned
- Size not long aligned.
- kQ3ErrorFileModeRestriction
- File mode restriction.
- kQ3ErrorInvalidHexString
- Invalid hex string.
- kQ3ErrorWroteMoreThanSize
- Wrote more than size.
- kQ3ErrorWroteLessThanSize
- Wrote less than size.
- kQ3ErrorReadLessThanSize
- Read less than size.
- kQ3ErrorReadMoreThanSize
- Read more than size.
- kQ3ErrorNoBeginGroup
- No begin group.
- kQ3ErrorSizeMismatch
- Size mismatch.
- kQ3ErrorStringExceedsMaximumLength
- String exceeds maximum length.
- kQ3ErrorValueExceedsMaximumSize
- Value exceeds maximum size.
- kQ3ErrorNonUniqueLabel
- Non unique label.
- kQ3ErrorEndOfContainer
- End of container.
- kQ3ErrorUnmatchedEndGroup
- Unmatched end group.
- kQ3ErrorFileVersionExists
- File version exists.
- kQ3ErrorViewNotStarted
- View not started.
- kQ3ErrorViewIsStarted
- View is started.
- kQ3ErrorRendererNotSet
- Renderer not set.
- kQ3ErrorRenderingIsActive
- Rendering is active.
- kQ3ErrorImmediateModeUnderflow
- Immediate mode underflow.
- kQ3ErrorDisplayNotSet
- Display not set.
- kQ3ErrorCameraNotSet
- Camera not set.
- kQ3ErrorDrawContextNotSet
- Draw context not set.
- kQ3ErrorNonInvertibleMatrix
- Non invertible matrix.
- kQ3ErrorRenderingNotStarted
- Rendering not started.
- kQ3ErrorPickingNotStarted
- Picking not started.
- kQ3ErrorBoundsNotStarted
- Bounds not started.
- kQ3ErrorDataNotAvailable
- Data not available.
- kQ3ErrorNothingToPop
- Nothing to pop.
- kQ3ErrorUnknownStudioType
- Unknown studio type.
- kQ3ErrorAlreadyRendering
- Already rendering.
- kQ3ErrorStartGroupRange
- Start group range.
- kQ3ErrorUnsupportedGeometryType
- Unsupported geometry type.
- kQ3ErrorInvalidGeometryType
- Invalid geometry type.
- kQ3ErrorUnsupportedFunctionality
- Unsupported functionality.
- kQ3ErrorInvalidPositionForGroup
- Invalid position for group.
- kQ3ErrorInvalidObjectForGroup
- Invalid object for group.
- kQ3ErrorInvalidObjectForPosition
- Invalid object for position.
- kQ3ErrorScaleOfZero
- Scale of zero.
- kQ3ErrorBadStringType
- Bad string type.
- kQ3ErrorAttributeNotContained
- Attribute not contained.
- kQ3ErrorAttributeInvalidType
- Attribute invalid type.
- kQ3ErrorInvalidCameraValues
- Invalid camera values.
- kQ3ErrorBadDrawContextType
- Bad draw context type.
- kQ3ErrorBadDrawContextFlag
- Bad draw context flag.
- kQ3ErrorBadDrawContext
- Bad draw context.
- kQ3ErrorUnsupportedPixelDepth
- Unsupported pixel depth.
- kQ3ErrorController
- Controller error.
- kQ3ErrorTracker
- Tracker error.
- kQ3ErrorWin32Error
- Windows error.
- kQ3ErrorTypeAlreadyExistsAndHasSubclasses
- Type already exists and has subclasses.
- kQ3ErrorTypeAlreadyExistsAndOtherClassesDependOnIt
- Type already exists and other classes depend on it.
- kQ3ErrorTypeAlreadyExistsAndHasObjectInstances
- Type already exists and has object instances.
- kQ3ErrorPickingLoopFailed
- Picking loop failed.
- kQ3ErrorRenderingLoopFailed
- Rendering loop failed.
- kQ3ErrorWritingLoopFailed
- Writing loop failed.
- kQ3ErrorBoundingLoopFailed
- Bounding loop failed.
- kQ3ErrorPlatformError
- Platform-specific error. Not available in QD3D.
- kQ3ErrorInfiniteRationalPoint
- Infinite rational point. Not available in QD3D.
- kQ3ErrorTriMeshPointIndexOutOfRange
- Bad point index in TriMesh data. Not available in QD3D.
TQ3Notice |
typedef enum QUESA_ENUM_BASE(TQ3Int32) { kQ3NoticeNone = 0, kQ3NoticeFirst = -28100, kQ3NoticeDataAlreadyEmpty = -28100, kQ3NoticeMethodNotSupported = -28099, kQ3NoticeObjectAlreadySet = -28098, kQ3NoticeParameterOutOfRange = -28097, kQ3NoticeFileAliasWasChanged = -28096, kQ3NoticeMeshVertexHasNoComponent = -28095, kQ3NoticeMeshInvalidVertexFacePair = -28094, kQ3NoticeMeshEdgeVertexDoNotCorrespond = -28093, kQ3NoticeMeshEdgeIsNotBoundary = -28092, kQ3NoticeDrawContextNotSetUsingInternalDefaults = -28091, kQ3NoticeInvalidAttenuationTypeUsingInternalDefaults = -28090, kQ3NoticeBrightnessGreaterThanOne = -28089, kQ3NoticeScaleContainsZeroEntries = -28088, kQ3NoticeSystemAlreadyInitialized = -28087, kQ3NoticeViewSyncCalledAgain = -28086, kQ3NoticeFileCancelled = -28085, kQ3NoticeBrightnessLessThanZero = -28084, #endif // QUESA_ALLOW_QD3D_EXTENSIONS kQ3NoticeLast, kQ3NoticeSize32 = 0x7FFFFFFF } TQ3Notice;
Quesa notice constants.
- kQ3NoticeNone
- No notice.
- kQ3NoticeDataAlreadyEmpty
- Data already empty.
- kQ3NoticeMethodNotSupported
- Method not supported.
- kQ3NoticeObjectAlreadySet
- Object already set.
- kQ3NoticeParameterOutOfRange
- Parameter out of range.
- kQ3NoticeFileAliasWasChanged
- File alias was changed.
- kQ3NoticeMeshVertexHasNoComponent
- Mesh vertex has no component.
- kQ3NoticeMeshInvalidVertexFacePair
- Mesh invalid vertex face pair.
- kQ3NoticeMeshEdgeVertexDoNotCorrespond
- Mesh edge vertex do not correspond.
- kQ3NoticeMeshEdgeIsNotBoundary
- Mesh edge is not boundary.
- kQ3NoticeDrawContextNotSetUsingInternalDefaults
- Draw context not set using internal defaults.
- kQ3NoticeInvalidAttenuationTypeUsingInternalDefaults
- Invalid attenuation type using internal defaults.
- kQ3NoticeBrightnessGreaterThanOne
- Brightness greater than 1.0.
- kQ3NoticeScaleContainsZeroEntries
- Scale contains zero entries.
- kQ3NoticeSystemAlreadyInitialized
- System already initialized.
- kQ3NoticeViewSyncCalledAgain
- View sync called again.
- kQ3NoticeFileCancelled
- File cancelled.
- kQ3NoticeBrightnessLessThanZero
- Brightness less than 0.0. Not available in QD3D.
TQ3Warning |
typedef enum QUESA_ENUM_BASE(TQ3Int32) { kQ3WarningNone = 0, kQ3WarningFirst = -28300, kQ3WarningInternalException = -28300, kQ3WarningNoObjectSupportForDuplicateMethod = -28299, kQ3WarningNoObjectSupportForDrawMethod = -28298, kQ3WarningNoObjectSupportForWriteMethod = -28297, kQ3WarningNoObjectSupportForReadMethod = -28296, kQ3WarningUnknownElementType = -28295, kQ3WarningTypeAndMethodAlreadyDefined = -28294, kQ3WarningTypeIsOutOfRange = -28293, kQ3WarningTypeHasNotBeenRegistered = -28292, kQ3WarningVector3DNotUnitLength = -28291, kQ3WarningInvalidSubObjectForObject = -28290, kQ3WarningInvalidHexString = -28289, kQ3WarningUnknownObject = -28288, kQ3WarningInvalidMetafileObject = -28287, kQ3WarningUnmatchedBeginGroup = -28286, kQ3WarningUnmatchedEndGroup = -28285, kQ3WarningInvalidTableOfContents = -28284, kQ3WarningUnresolvableReference = -28283, kQ3WarningNoAttachMethod = -28282, kQ3WarningInconsistentData = -28281, kQ3WarningReadLessThanSize = -28280, kQ3WarningFilePointerResolutionFailed = -28279, kQ3WarningFilePointerRedefined = -28278, kQ3WarningStringExceedsMaximumLength = -28277, kQ3WarningLowMemory = -28276, kQ3WarningPossibleMemoryLeak = -28275, kQ3WarningViewTraversalInProgress = -28274, kQ3WarningNonInvertibleMatrix = -28273, kQ3WarningQuaternionEntriesAreZero = -28272, kQ3WarningFunctionalityNotSupported = -28271, kQ3WarningInvalidPaneDimensions = -28270, kQ3WarningPickParamOutside = -28269, kQ3WarningScaleEntriesAllZero = -28268, kQ3WarningScaleContainsNegativeEntries = -28267, kQ3WarningParameterOutOfRange = -28266, kQ3WarningExtensionNotLoading = -28265, kQ3WarningTypeAlreadyRegistered = -28264, kQ3WarningTypeSameVersionAlreadyRegistered = -28263, kQ3WarningTypeNewerVersionAlreadyRegistered = -28262, kQ3WarningInvalidObjectInGroupMetafile = -28261, kQ3WarningQuaternionNotNormalized = -28260, kQ3WarningNormalCanNotBeFlipped = -28259, kQ3WarningTriangleNotNormalized = -28258, kQ3WarningVertexNotNormalized = -28257, kQ3WarningReadInfiniteFloatingPointNumber = -28256, kQ3WarningReadBadNormalVector = -28255, kQ3WarningUnsupportedSubdivisionStyle = -28254, kQ3WarningVertexShaderCompileFailed = -28253, kQ3WarningFragmentShaderCompileFailed = -28252, kQ3WarningShaderProgramLinkFailed = -28251, kQ3WarningCannotAcceleratePixmap = -28250, kQ3WarningNoOffscreenHardwareStencil = -28249, kQ3WarningTriMeshTriangleIndexOutOfBounds = -28248, #endif // QUESA_ALLOW_QD3D_EXTENSIONS kQ3WarningLast, kQ3WarningSize32 = 0x7FFFFFFF } TQ3Warning;
Quesa warning constants.
- kQ3WarningNone
- No warning.
- kQ3WarningInternalException
- Internal exception.
- kQ3WarningNoObjectSupportForDuplicateMethod
- No object support for duplicate method.
- kQ3WarningNoObjectSupportForDrawMethod
- No object support for draw method.
- kQ3WarningNoObjectSupportForWriteMethod
- No object support for write method.
- kQ3WarningNoObjectSupportForReadMethod
- No object support for read method.
- kQ3WarningUnknownElementType
- Unknown element type.
- kQ3WarningTypeAndMethodAlreadyDefined
- Type and method already defined.
- kQ3WarningTypeIsOutOfRange
- Type is out of range.
- kQ3WarningTypeHasNotBeenRegistered
- Type has not been registered.
- kQ3WarningVector3DNotUnitLength
- Vector3D not unit length.
- kQ3WarningInvalidSubObjectForObject
- Invalid sub object for object.
- kQ3WarningInvalidHexString
- Invalid hex string.
- kQ3WarningUnknownObject
- Unknown object.
- kQ3WarningInvalidMetafileObject
- Invalid metafile object.
- kQ3WarningUnmatchedBeginGroup
- Unmatched begin group.
- kQ3WarningUnmatchedEndGroup
- Unmatched end group.
- kQ3WarningInvalidTableOfContents
- Invalid table of contents.
- kQ3WarningUnresolvableReference
- Unresolvable reference.
- kQ3WarningNoAttachMethod
- No attach method.
- kQ3WarningInconsistentData
- Inconsistent data.
- kQ3WarningReadLessThanSize
- Read less than size.
- kQ3WarningFilePointerResolutionFailed
- File pointer resolution failed.
- kQ3WarningFilePointerRedefined
- File pointer redefined.
- kQ3WarningStringExceedsMaximumLength
- String exceeds maximum length.
- kQ3WarningLowMemory
- Low memory.
- kQ3WarningPossibleMemoryLeak
- Possible memory leak.
- kQ3WarningViewTraversalInProgress
- View traversal in progress.
- kQ3WarningNonInvertibleMatrix
- Non invertible matrix.
- kQ3WarningQuaternionEntriesAreZero
- Quaternion entries are zero.
- kQ3WarningFunctionalityNotSupported
- Functionality not supported.
- kQ3WarningInvalidPaneDimensions
- Invalid pane dimensions.
- kQ3WarningPickParamOutside
- Pick param outside.
- kQ3WarningScaleEntriesAllZero
- Scale entries all zero.
- kQ3WarningScaleContainsNegativeEntries
- Scale contains negative entries.
- kQ3WarningParameterOutOfRange
- Parameter out of range.
- kQ3WarningExtensionNotLoading
- Extension not loading.
- kQ3WarningTypeAlreadyRegistered
- Type already registered.
- kQ3WarningTypeSameVersionAlreadyRegistered
- Type same version already registered.
- kQ3WarningTypeNewerVersionAlreadyRegistered
- Type newer version already registered.
- kQ3WarningInvalidObjectInGroupMetafile
- Invalid object in group metafile.
- kQ3WarningQuaternionNotNormalized
- Quaternion is not normalized. Not available in QD3D.
- kQ3WarningNormalCanNotBeFlipped
- Normal can not be flipped as they would under QD3D. Not available in QD3D.
- kQ3WarningTriangleNotNormalized
- Triangle normal is not normalized. Not available in QD3D.
- kQ3WarningVertexNotNormalized
- Vertex normal is not normalized. Not available in QD3D.
- kQ3WarningReadInfiniteFloatingPointNumber
- Floating-point number read from file was infinite or NaN. Not available in QD3D.
- kQ3WarningReadBadNormalVector
- A supposed normal vector has components so large or small that it cannot be normalized. Not available in QD3D.
- kQ3WarningUnsupportedSubdivisionStyle
- A geometry does not support the current subdivision style.
- kQ3WarningVertexShaderCompileFailed
- Per-pixel lighting failed because the vertex shader did not compile.
- kQ3WarningFragmentShaderCompileFailed
- Per-pixel lighting is not fully functional because a fragment shader did not compile.
- kQ3WarningShaderProgramLinkFailed
- Per-pixel lighting failed because the shader program did not link.
- kQ3WarningCannotAcceleratePixmap
- It was not possible to set up the requested hardware-accelerated offscreen rendering.
- kQ3WarningNoOffscreenHardwareStencil
- It was not possible to set up a stencil buffer (needed for rendering shadows) in a hardware-accelerated pixmap draw context.
- kQ3WarningTriMeshTriangleIndexOutOfBounds
- Bad triangle index in TriMesh data.
© 1999-2023 Quesa Developers (Last Updated 1/27/2023)


open fun beforeExecution(phase: Phase): Unit
Executed before a phase be executed.
phase - the phase.
phase


Version History¶
Version 1.6.0¶
New Features
EventKernel
can now take arguments to specify the ray tracer to be used and the times array to be used in signal generation.- Added shell scripts to more easily work with git branching model.
Changes
ShadowGenerator
energy_generator
argument changed toenergy
and can now take a function or a scalar value, in which case all particles will have that scalar value for their energy.EventKernel
now usespyrex.IceModel
as its ice model by default.Antenna.receive
function (andreceive
function of all inheriting antennas) now usesdirection
argument instead oforigin
argument to calculate directional gain.Antenna.clear
andDetector.clear
functions can now optionally reset the noise calculation by using thereset_noise
argument.Antenna
classes can now set theunique_noise_waveforms
argument to specify the expected number of unique noise waveforms needed.ArasimIce
attenuation_length
changed to more closely match AraSim.IceModel
reverted toAntarcticIce
with new index of refraction coefficients matching those ofArasimIce
.prem_density
can now be calculated for an array of radii.
Performance Improvements
- Improved performance of
slant_depth
calculation. - Improved performance of
IceModel.attenuation_length
calculation. - Using the
Antenna
unique_noise_waveforms
argument can improve noise waveform calculation speed (previously assumed 100 unique waveforms were necessary).
Bug Fixes
- Fixed received direction bug in
EventKernel
, which had still been assuming a straight-ray path. - Lists in function keyword arguments were changed to tuples to prevent unexpected mutability issues.
- Fixed potential errors in
BasicRayTracer
andBasicRayTracePath
.
Version 1.5.0¶
Changes
- Changed structure of
Detector
class so a detector can be built up from strings to stations to the full detector. Detector.antennas
attribute changed toDetector.subsets
, which contains the pieces which make up the detector (e.g. antennas on a string, strings in a station).- Iterating the
Detector
class directly retains its effect of iterating each antenna in the detector directly.
New Features
- Added
triggered()
andclear()
method toDetector
class. - Added two new neutrino generators
ListGenerator
andFileGenerator
designed to pull pre-generatedParticle
objects.
Bug Fixes
- Preserve
value_type
ofSignal
objects passed toIREXAntennaSystem.front_end()
Version 1.4.2¶
Performance Improvements
- Improved performance of
FastAskaryanSignal
by reducing the size of the convolution.
Changes
- Adjusted time step of signals generated by kernel slightly (2000 steps instead of 2048).
Version 1.4.1¶
Changes
- Improved ray tracing and defaulted to the almost completely analytical
SpecializedRayTracer
andSpecializedRayTracePath
classes asRayTracer
andRayTracePath
. - Added ray tracer into
EventKernel
to replacePathFinder
completely.
Version 1.3.1¶
New Features
- Added diode bridge rectifier envelope circuit analytic model to
irex.frontends
and made it the default analytic envelope model inIREXAntennaSystem
. - Added
allow_reflection
attribute toEventKernel
class to determine whetherReflectedPathFinder
solutions should be allowed.
Changes
- Changed neutrino interaction model to include all neutrino and anti-neutrino interactions rather than only charged-current neutrino (relevant for
ShadowGenerator
class).
Version 1.3.0¶
New Features
- Added and implemented
ReflectedPathFinder
class for rays which undergo total internal reflection and subsequently reach an antenna.
Changes
- Change
AksaryanSignal
angle to always be positive and remove < 90 degree restriction (Alvarez-Muniz, Romero-Wolf, & Zas paper suggests the algorithm should work for all angles).
Performance Improvements
- Improve performance of ice index calculated at many depths.
Version 1.2.1¶
New Features
- Added
set_orientation
function toAntenna
class for setting thez_axis
andx_axis
attributes appropriately.
Bug Fixes
- Fixed bug where
Antenna._convert_to_antenna_coordinates
function was returning coordinates relative to (0,0,0) rather than the antenna’s position.
Version 1.2.0¶
Changes
- Changed
custom
module to a package containingirex
module. custom
package leverages “Implicit Namespace Package” structure to allow plug-in style additions to the package in either the user’s~/.pyrex-custom/
directory or the./pyrex-custom
directory.
Version 1.1.2¶
New Features
- Added
with_times
method toSignal
class for interpolation/extrapolation of signals to different times. - Added
full_waveform
andis_hit_during
methods toAntenna
class for calculation of waveform over arbitrary time array and whether said waveform triggers the antenna, respectively. - Added
front_end_processing
method toIREXAntenna
for processing envelope, amplifying signal, and downsampling result (downsampling currently inactive).
Changes
Change
Antenna.make_noise
to use a single master noise object and usewith_times
to calculate noise at different times.- To ensure noise is not obviously periodic (for <100 signals), uses 100 times the recommended number of frequencies, which results in longer computation time for noise waveforms.
Version 1.1.1¶
Changes
- Moved
ValueTypes
insideSignal
class. Now access asSignal.ValueTypes.voltage
, etc. - Changed signal envelope calculation in custom
IREXAntenna
from hilbert transform to a basic model. Spice model also available, but slower.
Version 1.1.0¶
New Features
Added
directional_gain
andpolarization_gain
methods to baseAntenna
.receive
method should no longer be overwritten in most cases.Antenna
now has orientation defined byz_axis
andx_axis
.antenna_factor
andefficiency
attributes added toAntenna
for more flexibility.
Added
value_type
attribute toSignal
class and derived classes.- Current value types are
ValueTypes.undefined
,ValueTypes.voltage
,ValueTypes.field
, andValueTypes.power
. Signal
objects now must have the samevalue_type
to be added (though those withValueTypes.undefined
can be coerced).
- Current value types are
Changes
- Made units consistent across PyREx.
- Added ability to define
Antenna
noise by RMS voltage rather than temperature and resistance if desired. - Allow
DipoleAntenna
to guess ateffective_height
if not specified.
Performance Improvements
- Increase speed of
IceModel.__atten_coeffs
method, resulting in increased speed of attenuation length calculations.
Version 1.0.3¶
New Features
- Added
custom
module to contain classes and functions specific to the IREX project.
Version 1.0.2¶
New Features
- Added
Antenna.make_noise()
method so custom antennas can use their own noise functions.
Changes
Allow passing of numpy arrays of depths and frequencies into most
IceModel
methods.IceModel.gradient()
must still be calculated at individual depths.
Added ability to specify RMS voltage of
ThermalNoise
without providing temperature and resistance.Removed (deprecated)
Antenna.isHit()
.
Performance Improvements
- Allowing for
IceModel
to calculate many attenuation lengths at once improves speed ofPathFinder.propagate()
. - Improved speed of
PathFinder.time_of_flight()
andPathFinder.attenuation()
(and improved accuracy to boot).
Version 1.0.1¶
Changes
- Changed
Antenna
not require a temperature and frequency range if no noise is produced.
Bug Fixes
- Fixed bugs in
AskaryanSignal
that caused the convolution to fail. - Fixed bugs resulting from converting
IceModel.temperature()
from Celsius to Kelvin.
Version 1.0.0¶
Created PyREx package based on original notebook.
Added all signal classes to produce full-waveform Askaryan pulses and thermal noise.
Changed
Antenna
class toDipoleAntenna
to allowAntenna
to be a base class.Changed
Antenna.isHit()
method toAntenna.is_hit
property.Introduced
IceModel
alias forAntarcticIce
(or any future preferred ice model).Moved
AntarcticIce.attenuationLengthMN
to its ownNewcombIce
class inheriting fromAntarcticIce
.Added
PathFinder.propagate()
to propagate aSignal
object in a customizable way.Changed naming conventions to be more consistent, verbose, and “pythonic”:
AntarcticIce.attenuationLength()
becomesAntarcticIce.attenuation_length()
.In
pyrex.earth_model
,RE
becomesEARTH_RADIUS
.In
pyrex.particle
,neutrino_interaction
becomesNeutrinoInteraction
.In
pyrex.particle
,NA
becomesAVOGADRO_NUMBER
.particle
class becomesParticle
namedtuple.Particle.vtx
becomesParticle.vertex
.Particle.dir
becomesParticle.direction
.Particle.E
becomesParticle.energy
.
In
pyrex.particle
,next_direction()
becomesrandom_direction()
.shadow_generator
becomesShadowGenerator
.PathFinder
methods become properties where reasonable:PathFinder.exists()
becomesPathFinder.exists
.PathFinder.getEmittedRay()
becomesPathFinder.emitted_ray
.PathFinder.getPathLength()
becomesPathFinder.path_length
.
PathFinder.propagateRay()
split intoPathFinder.time_of_flight()
(with correspondingPathFinder.tof
property) andPathFinder.attenuation()
.
Version 0.0.0¶
Original PyREx python notebook written by Kael Hanson:
https://gist.github.com/physkael/898a64e6fbf5f0917584c6d31edf7940


{% extends "base.html" %} {% block content %}
| Description | Deployment identifier | Status | Creation time | Update time | Endpoint | Deployed at | Physical Id | Actions |
|---|---|---|---|---|---|---|---|---|
| {{deployment.description}} | {{deployment.uuid}} | {% if "COMPLETE" in deployment.status %} {% elif "FAIL" in deployment.status %} {% else %} {% endif %} {{deployment.status}} | {{deployment.creation_time}} | {{deployment.update_time}} | {{deployment.endpoint}} | {{deployment.provider_name}} | {{deployment.physicalId}} |


--- layout: page weight: 0 title: Inbound Parse Webhook navigation: show: true --- {% info %} Available to Silver and higher packages or to our free demo accounts. {% endinfo %}
SendGrid can parse the attachments and contents from incoming emails. Application examples include receiving uploads and posting blog articles via email.
The parse API will POST the parsed email to a URL configured you specify. SendGrid automatically queues and retries any POSTs that respond with a 5XX status error. Additionally, we retry errors when we encounter 4XX status responses to prevent data loss for customers that have misconfigured their website or POST URL.
{% info %} If you don't want email messages to be retried in case of an error in delivery, please respond with a 200 status to the POST request. {% endinfo %}In order to avoid returning an error your link is required to return a 200 HTTP code when the email is received. This lets our system know that your link has received the email response and then it is removed from our send queue. If we do not get a valid 200 HTTP response, our servers will believe they have failed to deliver your message and will continue trying to send it. Messages that cannot be delivered after 3 days will be dropped.
{% anchor h2 %} Setup {% endanchor %}The following steps are required to begin parsing email:
The following parameters will be included in the POST to your callback URL.
{% info %} The request that will be sent to the HTTP endpoint will be enconded as multipart/form-data. {% endinfo %}| headers | The raw headers of the email. |
|---|---|
| text | Text body of email. If not set, email did not have a text body. |
| html | HTML body of email. If not set, email did not have an HTML body. |
| from | Email sender, as taken from the message headers. |
| to | Email recipient field, as taken from the message headers. |
| cc | Email cc field, as taken from the message headers. |
| subject | Email Subject. |
| dkim | A JSON string containing the verification results of any dkim and domain keys signatures in the message. |
| SPF | The results of the Sender Policy Framework verification of the message sender and receiving IP address. |
| envelope | A JSON string containing the SMTP envelope. This will have two variables: to, which is an array of recipients, and from, which is the return path for the message. |
| charsets | A JSON string containing the character sets of the fields extracted from the message. |
| spam_score | Spam Assassin's rating for whether or not this is spam. |
| spam_report | Spam Assassin's spam report. |
| attachments | Number of attachments included in email. |
| attachmentX | These are file upload names, where N is the total number of attachments. For example, if the number of attachments is 0, there will be no attachment files. If the number of attachments is 3, parameters attachment1, attachment2, and attachment3 will have file uploads. TNEF files (winmail.dat) will be extracted and have any attachments posted. |
If you will be receiving email which is not in ASCII only format, you will want to read this section.
Messages, and their headers, can have character set data associated with them. In order to simplify the parsing of messages for the end user, SendGrid will decode the to, from, cc, and subject headers if needed. All headers will be converted to UTF-8 for uniformity, since technically a header can be in many different character sets.
The charsets variable will contain a JSON encoded hash of the header / field name and its respective character set. For instance, it may look like:
{% codeblock lang:ruby %} [charsets] => {"to":"UTF-8","cc":"UTF-8","subject":"UTF-8","from":"UTF-8","text":"iso-8859-1"} {% endcodeblock %}This shows that all headers should be treated as UTF-8, and the text body is latin1.
{% anchor h3 %} Examples {% endanchor %}In this example, we want to parse all emails at<EMAIL_ADDRESS>and post the parsed email to http://sendgrid.com/email.php.
Given this scenario, the following are the parameters you would set at the Parse API settings page:
{% codeblock %} Hostname: email.sendgrid.biz {% endcodeblock %} {% codeblock %} URL: http://sendgrid.com/email.php {% endcodeblock %} To test this scenario, we sent an email to<EMAIL_ADDRESS>and created the following form at http://sendgrid.com/email.php: {% codeblock lang:php %} $file) { move_uploaded_file($file['tmp_name'], "/tmp/".$file['name']); } fclose($fh); } ?> {% endcodeblock %} {% warning %} If you are using a hosting service, you don't have direct access to the server's file system. In that case, you need to modify the path for the parse log to be somewhere you do have access to. In most cases, the second line in the code above: {% endwarning %} {% codeblock lang:php %} {% endcodeblock %}should be changed to...
{% codeblock lang:php %} {% endcodeblock %}After receiving the email, the file /tmp/parse.log will contain the following (note that the contents depend upon what parameters you have enabled, also note that the formatting of the data you receive may differ slightly):
{% codeblock %} Array ( [headers] => Received: by <IP_ADDRESS> with SMTP id DOtNAzsAwq Fri, 03 Feb 2012 12:51:06 -0600 (CST) Received: from mail-gy0-f181.google.com (mail-gy0-f181.google.com [<IP_ADDRESS>]) by mx2.sendgrid.net (Postfix) with ESMTPS id E07CC17878AC for


:: com :: sun :: star :: container ::
|
| interface XContainerQuery |
|
- Description
- supports simple query feature on a container
This interface makes it possible to create sub sets of container items
which serve specified search criterion.
|
| Methods' Details |
createSubSetEnumerationByQuery
| XEnumeration |
| createSubSetEnumerationByQuery( |
[in] string |
Query ); |
- Description
- creates a sub set of container items which match given query command
Items of this sub set must match used query string. Format of query depends
from real implementation. Using of "param=value" pairs isn't neccessary.
So it's possible to combine different parameters as one simple command
string.
- Parameter Query
- items of sub set must match to this query
example:
(1)
query as parameter sequence to return all elements wich match
the name pattern and supports a special feature; sort it ascending
"name=*myname_??_;sort=ascending;feature=VISIBLE"
(2)
query as command to return all elements which support special feature
and match by name pattern;ascending sort is the default
"getAllVisible(*myname_??_)"
- Returns
- an sub set of container items as an enumeration.
|
|
createSubSetEnumerationByProperties
- Description
- creates a sub set of container items which supports searched properties as minimum
It's not possible to use special commands or search specific parameters here.
You can match by properties only. Enumerated elements must provide queried
properties as minimum. Not specified properties willn't be used for searching.
- Parameter Properties
- items of sub set must support given properties as minimum
example:
(supported)
search for items wich match the name pattern and supports the VISIBLE feature
Parameters[0].Name = "name"
Parameters[0].Value = "*myname_??_"
Parameters[1].Name = "feature"
Parameters[1].Value = "VISIBLE"
...
(unsupported)
"sort" isn't a property of a container item!
Parameters[0].Name = "sort"
Parameters[0].Value = "ascending"
...
- Returns
- an sub set of container items as an enumeration.
|
|
Top of Page
Copyright © 2013, The Apache Software Foundation, Licensed under the Apache License, Version 2.0. Apache, the Apache feather logo, Apache OpenOffice and OpenOffice.org are trademarks of The Apache Software Foundation. Other names may be trademarks of their respective owners.


Hey, my name is Paul. I make software. Mostly, open-source. But I can help you commercially too. Feel free to ping me, if you need the service. I give talks about making software. Sometimes I write essays on anarcho-capitalism theory, because I like freedom and all stuff like that.


r/gaming
r/politics
r/worldnews
r/hiphopheads
r/nfl
Pulse of r/gaming
Find the pulse of the gaming community courtesy of r/gaming, r/TrueGaming, and r/Games
Top Trends:
1. Linux
2. Windows
3. PS4
4.  League of Legends
6. Microsoft
7. GTA V
8. windows
9. OS
10. linux


{% extends "html/_layouts/dashboard.html" %} {% set page_id = "chartjs" %} {% set group_id = "charts" %} {% block content %}
These charts are made using the Chart.js library. You can find more examples and ways to configure the charts in the Chart.js Documentation.


Connection LOST! Attempting to re-establish...
INTERNAL MEMORY ERROR! Please check the camera exposure settings!
CAMERA HARDWARE ERROR! Please check the camera exposure settings.
Lower the shutter time.
Do a full power-off-power-on reset if the problem is not solved.
MOUNT HARDWARE ERROR!
Do a full power-off-power-on reset if the problem is not solved.
WAITING for camera to load new exposure settings...
TODO: main controls here
TODO: calibration visualization here
TODO: motion graph here
If the camera gets too hot, there will be pixels that appear to be stuck as white. These stuck pixels will be falsely detected as stars. You will notice these pixels when you see stars that do not move even though you are moving the camera around.
It is possible to memorize which pixels are stuck so that they are removed from the list of stars. To do so:
Think of this as taking a "dark frame" but not really the same thing.
If a hot pixel is near where an important star exists, then rotate the camera.


/****************************************************************************
**
** Copyright (C) 2016 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the QtGui module of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
** GNU Lesser General Public License Usage
** Alternatively, this file may be used under the terms of the GNU Lesser
** General Public License version 3 as published by the Free Software
** Foundation and appearing in the file LICENSE.LGPL3 included in the
** packaging of this file. Please review the following information to
** ensure the GNU Lesser General Public License version 3 requirements
** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 2.0 or (at your option) the GNU General
** Public license version 3 or any later version approved by the KDE Free
** Qt Foundation. The licenses are as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
** included in the packaging of this file. Please review the following
** information to ensure the GNU General Public License requirements will
** be met: https://www.gnu.org/licenses/gpl-2.0.html and
** https://www.gnu.org/licenses/gpl-3.0.html.
**
** $QT_END_LICENSE$
**
****************************************************************************/
#ifndef QKEYSEQUENCE_H
#define QKEYSEQUENCE_H
#include <QtGui/qtguiglobal.h>
#include <QtCore/qstring.h>
#include <QtCore/qobjectdefs.h>
QT_BEGIN_NAMESPACE
#if !defined(QT_NO_SHORTCUT) || defined(Q_CLANG_QDOC)
class QKeySequence;
/*****************************************************************************
QKeySequence stream functions
*****************************************************************************/
#if !defined(QT_NO_DATASTREAM) || defined(Q_CLANG_QDOC)
Q_GUI_EXPORT QDataStream &operator<<(QDataStream &in, const QKeySequence &ks);
Q_GUI_EXPORT QDataStream &operator>>(QDataStream &out, QKeySequence &ks);
#endif
#if defined(Q_CLANG_QDOC)
void qt_set_sequence_auto_mnemonic(bool b);
#endif
class QVariant;
class QKeySequencePrivate;
Q_GUI_EXPORT Q_DECL_PURE_FUNCTION uint qHash(const QKeySequence &key, uint seed = 0) Q_DECL_NOTHROW;
class Q_GUI_EXPORT QKeySequence
{
Q_GADGET
public:
enum StandardKey {
UnknownKey,
HelpContents,
WhatsThis,
Open,
Close,
Save,
New,
Delete,
Cut,
Copy,
Paste,
Undo,
Redo,
Back,
Forward,
Refresh,
ZoomIn,
ZoomOut,
Print,
AddTab,
NextChild,
PreviousChild,
Find,
FindNext,
FindPrevious,
Replace,
SelectAll,
Bold,
Italic,
Underline,
MoveToNextChar,
MoveToPreviousChar,
MoveToNextWord,
MoveToPreviousWord,
MoveToNextLine,
MoveToPreviousLine,
MoveToNextPage,
MoveToPreviousPage,
MoveToStartOfLine,
MoveToEndOfLine,
MoveToStartOfBlock,
MoveToEndOfBlock,
MoveToStartOfDocument,
MoveToEndOfDocument,
SelectNextChar,
SelectPreviousChar,
SelectNextWord,
SelectPreviousWord,
SelectNextLine,
SelectPreviousLine,
SelectNextPage,
SelectPreviousPage,
SelectStartOfLine,
SelectEndOfLine,
SelectStartOfBlock,
SelectEndOfBlock,
SelectStartOfDocument,
SelectEndOfDocument,
DeleteStartOfWord,
DeleteEndOfWord,
DeleteEndOfLine,
InsertParagraphSeparator,
InsertLineSeparator,
SaveAs,
Preferences,
Quit,
FullScreen,
Deselect,
DeleteCompleteLine,
Backspace,
Cancel
};
Q_ENUM(StandardKey)
enum SequenceFormat {
NativeText,
PortableText
};
QKeySequence();
QKeySequence(const QString &key, SequenceFormat format = NativeText);
QKeySequence(int k1, int k2 = 0, int k3 = 0, int k4 = 0);
QKeySequence(const QKeySequence &ks);
QKeySequence(StandardKey key);
~QKeySequence();
int count() const;
bool isEmpty() const;
enum SequenceMatch {
NoMatch,
PartialMatch,
ExactMatch
};
QString toString(SequenceFormat format = PortableText) const;
static QKeySequence fromString(const QString &str, SequenceFormat format = PortableText);
static QList<QKeySequence> listFromString(const QString &str, SequenceFormat format = PortableText);
static QString listToString(const QList<QKeySequence> &list, SequenceFormat format = PortableText);
SequenceMatch matches(const QKeySequence &seq) const;
static QKeySequence mnemonic(const QString &text);
static QList<QKeySequence> keyBindings(StandardKey key);
#if QT_DEPRECATED_SINCE(5, 0)
QT_DEPRECATED operator QString() const { return toString(QKeySequence::NativeText); }
QT_DEPRECATED operator int() const { if (1 <= count()) return operator [](0); return 0; }
#endif
operator QVariant() const;
int operator[](uint i) const;
QKeySequence &operator=(const QKeySequence &other);
#ifdef Q_COMPILER_RVALUE_REFS
QKeySequence &operator=(QKeySequence &&other) Q_DECL_NOTHROW { swap(other); return *this; }
#endif
void swap(QKeySequence &other) Q_DECL_NOTHROW { qSwap(d, other.d); }
bool operator==(const QKeySequence &other) const;
inline bool operator!= (const QKeySequence &other) const
{ return !(*this == other); }
bool operator< (const QKeySequence &ks) const;
inline bool operator> (const QKeySequence &other) const
{ return other < *this; }
inline bool operator<= (const QKeySequence &other) const
{ return !(other < *this); }
inline bool operator>= (const QKeySequence &other) const
{ return !(*this < other); }
bool isDetached() const;
private:
static int decodeString(const QString &ks);
static QString encodeString(int key);
int assign(const QString &str);
int assign(const QString &str, SequenceFormat format);
void setKey(int key, int index);
QKeySequencePrivate *d;
friend Q_GUI_EXPORT QDataStream &operator<<(QDataStream &in, const QKeySequence &ks);
friend Q_GUI_EXPORT QDataStream &operator>>(QDataStream &in, QKeySequence &ks);
friend Q_GUI_EXPORT uint qHash(const QKeySequence &key, uint seed) Q_DECL_NOTHROW;
friend class QShortcutMap;
friend class QShortcut;
public:
typedef QKeySequencePrivate * DataPtr;
inline DataPtr &data_ptr() { return d; }
};
Q_DECLARE_SHARED(QKeySequence)
#if !defined(QT_NO_DEBUG_STREAM) || defined(Q_CLANG_QDOC)
Q_GUI_EXPORT QDebug operator<<(QDebug, const QKeySequence &);
#endif
#else
class Q_GUI_EXPORT QKeySequence
{
public:
QKeySequence() {}
QKeySequence(int) {}
};
#endif // QT_NO_SHORTCUT
QT_END_NAMESPACE
#endif // QKEYSEQUENCE_H
↑ V690 The 'QKeySequence' class implements the move assignment operator, but lacks a move constructor. It is dangerous to use such a class.


Unfortunately, the concert in Squaresville was rescheduled due to weather. The new date is Saturday, March 26th. We will join several groups at the Squaresville Music Inn during Old Time Festival.


Pussycat Dolls to announce comeback on Celebrity X Factor with surprise group performance
X Factor judge Nicole Scherzinger is set to use the talent show to unveil her band's return as they mark their 20th anniversary
by Sofia PetkarThe Pussycat Dolls are set to make a spectacular comeback later this month with a surprise performance on X Factor : Celebrity.
According to The Sun, judge Nicole Scherzinger will use the show to unveil the band’s return before taking to the stage with her bandmates for their first gig in more than a decade.
A source claimed: “The X Factor producers approached Nicole about the idea of performing with the girls and she jumped at the chance.
“It’s going to be their first big performance of the reunion and will be extra special for Nicole because of her role in the show.
“Having the Pussycat Dolls perform is a real coup for Simon Cowell and he has told Nicole to pull out all the stops to make sure their routine gets people talking.”
The Pussycat Dolls, made up of Nicole, Meoldy Thornton, Kimberley Wyatt, Ashley Roberts, Carmit Bachar and Jessica Sutta, split officially in 2010, with the girls going on to solo projects with varying degrees of success.
Their reunion is set to mark the band’s 20th anniversary and will see them embark on a mega tour of the UK and Europe.
While the reason behind the band’s split have never been confirmed, rumours flew that Nicole had been at the centre of the band’s unhappiness.
According to Carmit, excessive favouritism of Nicole caused series tensions in the group, with claims that the lead Pussycat’s secret ambitions of a solo career also damaged relationships.
The same sentiment was echoed by Ashley during her stint on ‘I’m a Celebrity’ in 2012, when she revealed: “Even in the group, I wasn't allowed to talk, we were told to be quiet. Only Nicole was allowed to talk. We would occasionally pitch in."
Continuing to vent her frustrations, Ashley also revealed that nothing in the group was fairly done, adding: “Why do you think the band broke up? U2 are still together and they split everything down the middle.”
Do you have a story to sell? Get in touch with us at<EMAIL_ADDRESS>or call us direct 0207 29 33033


ORIGINAL ARTICLES
Risk factors for mortality among elderly people
Flávia de O M MaiaI; Yeda A O DuarteII; Maria Lúcia LebrãoIII; Jair L F SantosIV
IHospital
Universitário. Universidade de São Paulo (USP). São Paulo,
SP, Brasil
IIDepartamento
de Enfermagem Médico-Cirúrgica. Escola de Enfermagem. USP. São
Paulo, SP, Brasil
IIIDepartamento
de Epidemiologia. Faculdade de Saúde Pública. USP. São
Paulo, SP, Brasil
IVDepartamento
de Medicina Social. Faculdade de Medicina de Ribeirão Preto. USP. Ribeirão
Preto, SP, Brasil
ABSTRACT
OBJECTIVE:
The risk factors for diseases and premature deaths are important in drawing
up preventive measures. This study had the aim of analyzing the risk factors
for death among elderly people.
METHODS: This study was carried out among participants in the SABE (Health,
Wellbeing and Aging) study, in the city of São Paulo in 2000. Interviews
were conducted with 2,143 elderly people (60 years old or over), using a standardized
questionnaire for the SABE study. The sample was obtained from census tracts,
in two stages, with replacements and with probability proportional to the population,
and with supplementation of the sample of people aged 75 years or over. The
final data were weighted so that they could be expanded. Between the two data
collection times, there were 38 deaths which comprised study sample. Logistic
regression was utilized for the data analysis, with a significance level of
5%.
RESULTS: The risk factors found were: locomotion difficulty, advanced
age, male gender, self-assessment of health as "bad" and difficulty in going
to the bathroom, OR=3.15; 2.93; 2.90; 2.69 and 2.51, respectively.
CONCLUSIONS: The results may contribute towards the adoption of preventive
measures for elderly people, with the aim of diminishing the expected number
of fatal outcomes.
Keywords: Aging health. Risk factors. Morbidity. Mortality. Multicenter studies. SABE. Pan American Health Organization.
INTRODUCTION
Aging is a challenge in today's world that affects rich and poor countries. It is estimated that around one million people cross the threshold of 60 years of age every month, throughout the world. It is possible that by the year 2025, out of the 11 countries with the biggest populations of elderly people, eight will be in the category of developing countries, thus showing a transposition of large elderly populations from developed countries to countries that had been taken to be characteristically young, such as Nigeria, Brazil or Pakistan.18,20
In Latin America and the Caribbean, most countries are in an intermediate phase of demographic transition. According to Palloni & Peláez,13 the transition in these countries is characterized by its rapidity. This, together with an unstable institutional context and unfavorable economic environment, generates conditions that make the process much more complex than in other areas of the world.
In Brazil in 1940, there were 1.7 million elderly people. By 2000, this total had reached 14.5 million, i.e. a ninefold increase. It is estimated that it will reach 30.9 million by 2020, thus placing this country's population of elderly people among the seven biggest in the world.5
Population groups have different risks of becoming ill, suffering accidents or dying. The presence of certain risk factors indicates greater likelihood that damage to health may appear. Once identified, these factors may be treated or modified by health actions, thereby altering the course of morbid or fatal events.
Risk factors can be defined as conditions that predispose towards a greater risk of developing certain health-related events after a given time. Risk factors that present the possibility of change and/or treatment are therefore of great interest, and the promotion of preventive measures is a central feature of maintaining and recovering the health of elderly people.4,14
With the growth in the elderly population, there has also been increasing interest in establishing factors that might, singly or jointly, better explain the risk of death that an elderly individual presents over the short term, thereby postponing an early fatal outcome.17
The Pan-American Health Organization coordinated a multicenter study named Health, Wellbeing and Aging (Saúde, Bem-Estar e Envelhecimento - SABE), to outline the profile of elderly people in Latin America and the Caribbean. Argentina, Barbados, Brazil, Chile, Cuba, Mexico and Uruguay took part in this study.1 In Brazil, the study was composed of elderly people living in the municipality of São Paulo in the year 2000.
The risk factors for death among elderly people that are often described in the literature as immutable are age and sex. Among the factors that are described as alterable are hospitalization, dependence for carrying out activities of daily living, cognitive deficit, lifestyle (such as smoking and not practicing physical exercise), some diseases such as depression and cancer, social isolation and the lack of family support, socioeconomic level and negative self-assessment of health as a predictor of mortality.16,21
Thus, the present study had the objective of investigating the risk factors for mortality among elderly people.
METHODS
The population studied was composed of elderly people living in the municipality of São Paulo in the year 2000, as part of the SABE study conducted in Brazil. The study was characterized as a cross-sectional, exploratory and descriptive investigation with a quantitative approach.
The sample was made up of two segments. The first of these resulted from a draw and was based on the permanent records of 72 census tracts that are available in the Department of Epidemiology of Faculdade de Saúde Pública of Universidade de São Paulo (USP). This sample was taken from the records of the National Home Sampling Survey (PNAD, 1995), which are composed of 263 census tracts drawn by cluster sampling using the criterion of probability proportional to the number of homes. This segment consisted of a probabilistic sample of 1,568 interviewees. The second segment was composed of 575 people living in the districts in which the preceding interviews had been conducted, and constituted additions made to compensate for mortality among elderly people aged over 75 years and to complete the desired number of interviews within this age group. The minimum number of home drawn in the second stage was approximated to 90. Completion of the sample of people aged 75 years and over was done by means of locating homes that were close to the census tracts selected or, at most, within the limits of the districts to which the selected census tracts belonged, in accordance with the SABE study.11
The data were gathered simultaneously, by means of home interviews using an instrument consisting of 11 thematic sections.* In the first phase, the following were gathered: personal data; cognitive assessment; state of health; functional state; medications; use of and access to services; family and social support network; work history and income sources; and housing characteristics. In the second phase, anthropometric data were obtained and flexibility and mobility tests were carried out. There was a maximum of six months between the two phases.11
Each questionnaire had a weight calculated in accordance with the corresponding census tract (weight=1/f). For the questionnaires applied to individuals in homes that were not drawn (age group of 75 years and over), the weighting calculation was done in accordance with the list of the elderly population within this age group who were living in the municipality of São Paulo in 1998, and the total number of elderly people in this age group found in the final sample for the study.11 A detailed description of the methodology utilized can be found in Lebrão & Duarte.10
The study subjects were 38 elderly people living in the municipality of São Paulo who died between the two phases of data collection.
To analyze the risk factors for death, the pertinent variables were extracted from the questionnaire and were grouped into six thematic types: personal information, reported diseases, health care attendance, state of health, health conditions and activities of daily living.
Each variable was grouped into two classes: zero (0) as the reference class and one (1) for the contrast (Table 1). For this, the information corresponding to "did not know" and "did not answer" and information not filled in (missing values) was disconsidered.
Stepwise regression was utilized,7 because in this way the desired ranking of the relevance of each variable for explaining the model in the presence of the other variables could be built up. The significance level was set at 5%, both for including each variable in the model and for calculating the confidence intervals for the odds ratios.
For each thematic group, logistic regression was applied with the response variable of death, thereby making it possible to analyze the importance of the variables in each group. From the significant variables from each of these, a general model was built up and the relative importance of the response variables was verified.
RESULTS
Table 2 shows the variables that presented statistical significance in each thematic group. In the "personal information" group, the variables of age and sex were the most important. Age of 75 years or over presented a risk of death approximately four times greater than for the elderly people aged between 60 and 74 years.
In the "health care attendance" thematic group, none of the variables analyzed presented statistical significance. Thus, it seems that whether or not there was any attendance by the health care system over the preceding four months, for example, there was no influence on the occurrence of the fatal event.
The "reported diseases" grouping contained the principal diseases and complaints that affect the elderly. Among these, cardiac disease was shown to be the most important, and this increased the risk of death by a factor of 2.7 times.
The "state of health" grouping contained the symptoms reported by the elderly people. Of these, only "persistent cough, catarrh or chest wheezing" was shown to be statistically significant in the analysis, increasing the risk of death by a factor of 3.2 times, in relation to those who did not present such symptoms.
In the "health conditions" grouping, the variable of health rated as "bad" was 4.5 times more significant than the variable of health rated as "good". The variables of smoking, drinking, not performing physical activities and cognitive abnormalities did not present statistically significant results for the risk of death.
In the "activities of daily living" grouping, the activities that presented statistical significance were those related to performing self-care activities and therefore those related to elderly people with a greater degree of dependence. Among these, difficulty in going to the bathroom, in feeding and in walking across the bedroom increased the possibility of the elderly individual dying by factors of 5.4, 3.3 and 2.8 times, respectively.
Difficulty in going to the bathroom, which has often been neglected in assessments on elderly people, was shown to be very important information, since it presented the largest risk ratio in relation to the occurrence of a fatal event. The elderly people with "difficulty in lying down on or getting up from a bed" presented a negative correlation (0.24).
In Table 3, the variables of the thematic groups that maintained significance of their results after again being put into the analysis model are presented.
In applying the regression model by means of multivariate analysis, it was observed that the principal risk factors for death among the elderly people were, in decreasing order: difficulty in locomotion, age of 75 years or over, male sex, health self-rated as "bad", and difficulty in going to the bathroom.
DISCUSSION
Among the risk factors analyzed, age is considered to be the best indicator of the risk of dying, since the likelihood of acquiring a chronic disease or incapacity increases with age.16,21 Likewise, functional capacity and reserves also progressively diminish, thereby increasing the susceptibility to health problems and consequently the possibility of death. The mortality rates among elderly Brazilians increase for both sexes with age. Dependence on others for performing basic activities of daily living (feeding, hygiene, transfer, getting dressed and sphincter control) also increases. Chronic conditions such as hypertension, diabetes and osteoarticular diseases, among others, become more frequently reported. According to the data from the present study, age of 75 years or over represented a greater risk of dying. This characteristic is shared with developed countries, in which for every five years added to age, the risk of death goes up by 50%.4,16,21
Sex is also indicated as a risk factor for death, such that men are more susceptible than women. This difference in mortality between men and women occurs as a result of a variety of factors that, singly or jointly, cause women to live longer than men. The reduction in mortality due to maternal causes has been one factor contributing towards this difference. It is more a female characteristic than a male characteristic to seek health services, and this facilitates early treatment of diseases. There are also the biological differences that are considered to be protective for women, such as female hormones during fertile age, in relation to cardiocirculatory events. The domestic environment, where women traditionally remain, may be considered to be a safe environment, in relation to what men are exposed to. Environmental and occupational risks, such as work accidents, traffic accidents and homicide, and the stress associated with socioeconomic changes, have contributed towards greater mortality among elderly men. The smoking habit and alcohol consumption, which increase the risk for large numbers of diseases, were more common among the men than among the women in the elderly population studied. Nonetheless, these relationships might become equal or inverted in the future, consequent to changes in female habits and behavioral patterns.3,6
Among the diseases reported, the circulatory system disease group presented a significantly greater risk of death, and these diseases are the principal cause of death among elderly people, according to national statistics.** Given that coronary cardiopathy is the principal cause of death among cardiovascular disease in many countries, and in view of its importance among the elderly, the World Health Organization has outlined preventive strategies and strategies for stabilizing clinical conditions, with the aim of avoiding illness, incapacity and death resulting from these diseases.12
Hospitalization is considered to be a risk factor for death among elderly people, because it provokes adverse effects on health such as infections, social isolation and iatrogenic conditions, among others. These may cause loss of independence and autonomy, and may often lead to death.15 Despite this, in the present analysis hospitalization was shown to be significant. Hospitalized elderly people present progressive physical decline and, after discharge from hospital, they do not always manage to recover their previous functional performance, which results in high mortality rates following hospitalization.15 According to Ponzetto et al,15 loss of functional capacity is a more reliable prognostic factor for mortality among elderly people than the diagnoses made during hospitalization.
This was corroborated by the present study, in which the odds ratios for basic activities of daily living presented significance for the occurrence of death. Dependence on others for performing these activities is considered to be a risk factor for death among elderly people because such individuals have an indispensable need for help in performing the elementary tasks of life. Without an adequate structure for meeting their needs, dependent elderly people can be considered to be in an at-risk situation for worsening health and death.
Losses of cognitive abilities may alter functional capacity and compromise other domains such as physical and social characteristics. Deterioration among elderly individuals, whether due to dementia or depression, leads to loss of autonomy and independence. Moderate to severe cognitive deficit is associated with greater risk of death among elderly people, even when controlled for demographic conditions and chronic comorbidities.18 Nevertheless, this relationship could not be discerned in the present study.
Self-rated health, in response to the question "How do you rate your health?" has been widely utilized in investigations on elderly populations. Even though this a subjective assessment, it has shown results that are similar to those from objective evaluations of health conditions.2,8 In addition to being easily obtained information, since it only depends on the elderly person's own opinion about his health, it was shown to be very important, because when it was considered bad, the likelihood of that elderly person dying became greater.
In reviews of the literature, Benyamini & Idler2 and Idler & Benyamini,8 showed that in most studies conducted since the 1980s, the elderly people who self-rated their health as bad presented greater incidence of death than did those who considered it to be excellent.
Among elderly people, self-rated health may present greater sensitivity for men than for women. Since women live longer than men and experience more years with diseases and incapacities, they tend to rate their health more negatively than do men, but do not necessarily die because of this, over the short term. Thus, negative self-rated health expressed by women may be more associated with quality of life. On the other hand, when men rate their health negatively, they present a greater risk of succumbing to a fatal event.9
Diseases relating to the respiratory system are the second biggest cause of hospitalization and the third biggest cause of death in Brazil. The findings from the present study reinforce the need for there to be monitoring of elderly people with chronic respiratory conditions, and for increases in prevention services relating to vaccinations for this age group and their principal communicants, against colds and pneumonia. These should also be monitoring of circulating viruses, to contribute towards improving the composition of such vaccines offered to this population.
Smoking, drinking and not doing physical activities are more associated with the risk of developing diseases such as cardiovascular diseases than directly with the risk of death.
The negative correlation between bedridden elderly people and death leads to the inference that dependence requires greater attention, which seems to act as a protection factor against the occurrence of fatal events. On the other hand, individuals who are moderately dependent, i.e. who have difficulty in locomotion and transfer, presented greater risk of death. The results now presented indicate that there is a need for greater reflection regarding prioritization of care and reorganization of services.
The variables indicated by the model utilized may assist in building up an instrument for assessing the risk of death, thereby contributing towards the prevention of fatal events.
Elderly people who present greater risk of death ought to deserve differentiated attention from the bodies responsible for organizing the services destined for this population and their families, such that this would result in decreased premature death among these elderly people.
It is not intended through this that life should be prolonged at any cost. On the contrary, the idea is to avoid deaths associated with lack of health care, structure and resources, in a society that is rapidly aging and where elderly people's needs are often inadequately met, thereby increasing the possibilities of worsening health, incapacity, compromised quality of life, and death.
REFERENCES


Dynamic Worksite Models with Mobile Robots
Overview
Automation in construction and facility management could significantly improve efficiency and productivity throughout the lifecycle of modern facilities. However, for robots and autonomous systems to operate in effectively in dynamic and unstructured environments such as a construction sites, they must be able to infer or obtain a semantic model of the environment.
Previous efforts in Civil Engineering and Robotics have focused on developing static maps of the environment, often neglecting the possibility that objects can be moved. This project investigates how information from mobile robots can be used to dynamically update an existing model of the building environment with semantic-rich information. We propose Object R-CNN, a new 2D-3D computer vision algorithm to detect and localize common worksite objects, using RGB‑D frames. We then propose using a multi-object Kalman filter to track objects across successive RGB-D frames, allowing false-positive detections to be ignored and position estimates to be refined.
Publication
M. Ferguson, and K. H. Law. “A 2D-3D Object Detection System for Updating Building Information Models with Mobile Robots.” In IEEE Winter Confence on Applications of Computer Vision (WACV). Waikoloa Village, HI, USA, 2019.
[ link ]
Supplementary
M. Ferguson, and K. H. Law. “Supplementary Material: A 2D-3D Object Detection System for Updating Building Information Models with Mobile Robots. In IEEE Winter Confence on Applications of Computer Vision (WACV). Waikoloa Village, HI, USA, 2019. [ link ]
Source Code
Object R-CNN Source Code [ Coming soon ]
Mobile Robot Source Code [ link ]
Acknowledgement
This research is partially supported by the Center for Integrated Facility Engineering at Stanford University. The first author is also supported by the John A. Blume fellowship.


flexbox
and grid
layouts.
---
| Class | Output | Definition | Responsive? |
|---|---|---|---|
.{{ item.class }} |
{{ item.output }} |
{{ item.define }} | {% if item.responsive %} {% icon "Checkmark", "fc-green-500" %} {% endif %} |
Spacing can be set on just the x-axis with .gx
classes. They can be used independently or in combination with other atomic gap classes.
| Class | Definition | Responsive? |
|---|---|---|
.{{ item.class }} |
{{ item.define }} | {% if item.responsive %} {% icon "Checkmark", "fc-green-500" %} {% endif %} |
Spacing can be set on just the y-axis with .gy
classes. They can be used independently or in combination with other atomic gap classes.
| Class | Definition | Responsive? |
|---|---|---|
.{{ item.class }} |
{{ item.define }} | {% if item.responsive %} {% icon "Checkmark", "fc-green-500" %} {% endif %} |


‘Involved’ Abramovich has rejected bargain bids for Chelsea, says chairman
LONDON, Nov 25 — Chelsea owner Roman Abramovich is fully involved in running the Premier League side and will not entertain “bargain bids” for the club, chairman Bruce Buck said.
Abramovich ran into problems renewing his British visa last year and has not been seen at Chelsea’s home games this season. He has also cancelled plans to redevelop Stamford Bridge.
British media reported Abramovich had grown weary and was looking to sell the club but Buck said that the Russian billionaire, who took Israeli citizenship in May last year, had no such plans.
“I have never heard a word from Abramovich: ‘Let’s get this ready for a sale,’ or something,” Buck told The Guardian.
“Because of the political situation, there are people who think they might want to buy Chelsea at a bargain. We do get inquiries and we really have nothing to say to these people.
“In terms of being involved, in looking at new players, talking about whether to extend players’ contracts... (he) was always intimately involved in that from day one and is just as intimately involved now.”
Chelsea are currently unable to add any new players to their squad after being hit with a transfer ban by football’s governing body Fifa. Manager Frank Lampard has guided an inexperienced team to fourth in the league after 13 games.
“The transfer ban has led to more opportunities for young players,” Buck said.
“...It makes Mr Abramovich very happy, because he is interested in the academy. I would guess he’s one of the few owners that have been to lots of academy matches.” — Reuters


Ocean [ac21], ocean, in Crystal Sea
Last updated Turn #147
Ocean [ac21], ocean, in Crystal Sea
------------------------------------------------------------------------
2: Sea Lion [hq7s], ship, 2 hulls, 1 rowing port, 6 sails, arrived from
2: Ocean [ac20], owner:
2: Toulouse [h1q], Pen, with eight sailors
3: Sea Lion [hq7s], ship, 2 hulls, 1 rowing port, 6 sails, departed for
3: Ocean [ac22].
Routes leaving Ocean:
North, to Ocean [ab21], 6 days
East, to Ocean [ac22], 6 days
South, to Ocean [ad21], 6 days
West, to Ocean [ac20], 6 days


Palindrom Demos with Frameworks
These demos show Palindrom playing with different frameworks
Palindrom + Polymer
Palindrom + Vue
Palindrom + React


I distinctly remember that, before actually ingesting the shrooms, my friend G said 'There's nothing like shrooms; they stand on their own'. After my first time... I can agree.
It was me and three friends. We all ingested the shrooms at about 6pm (right after I got home from work). S and G and I took the shrooms one at a time (there were about three, plus two stems) and chased them down with juice (they taste like crap). My other friend C, however, stuffed them into his mouth and swallowed. We glanced at him and he said 'Should I not have done that?' ... in retrospect, no he shouldn't have. I'm not going to say this experience was a bad trip... just one that made me realize just how intense my friends are and how intense my mind is. Cool.
My first mistake was the pot. We smoked a lot of pot before the effects of the shrooms kicked in. This was bad for me, because my state of mind wasn't what I wanted it to be when I tripped. I'm very susceptable to the paranoia that pot causes. Under normal conditions, I remind myself that it's all in my head and I usually deal with it, no problem. On shrooms, however... that paranoia is elevated 100 fold. Very bad.
My second mistake was tripping with C. He's my brother forever and I love him to death - but good lord... what a madman. He started tripping before all of us. I mean, he was in an absolute wonderland. The whole trip, he started talking in low voices and growling, saying things like:
'I am Hunter S. Thompson!'
'You're in league with the bat people, aren't you?'
'GOD DAMN I HAVE TO GO TO CANTERS!'
'I'm trying to imagine how you must see me. I'm up above here, trying to see you.'
Creepy stuff, coming from C. I started tripping about an hour after I took the stuff. Someone asked me if I was feeling the effects (there was music playing in the background) and I said 'no'. Immediately after I said that, the music in the background started playing backwards (and it was in french, so it was really trippy). Then a Frank Sinatra song came on and his voice started slowing down and speeding up - that was cool. I focused in on the shadows in my room and noticed them pulsating softly... now I'm definately in the groove. Then C and I both went mad...
He started walking and screaming and shuffling and howling and talking jibberish. I started worrying about him, then I thought he was going to harm someone, then I thought that he was convinced I was his enemy. I went from different states of terror to sadness when I was around C. But then, everything was beautiful. The music, my surroundings. Things breathed and every intricate surface was important and interesting and divine. I remember walking to the Liquor Store and seeing an old couple crossing the street - but they weren't walking. Kind of hovering and jittering... talking at high speeds. It was funny - kind of reminded me of a Terry Gilliam Monty Python cartoon.
G left early cause he had to go somewhere (he didn't trip with us...) and S didn't feel the effects till' 3am in the morning (when we were all trying to sleep). He started laughing and going on about how beautiful the moonlight was. He drew with a pen for hours on a piece of paper so I sat with him and talked to him about music and art and life. C passed out.
When asked about my trip, I simply say 'it was a horrible, beautiful experience and I'd do it again at the drop of a hat. Though, that's a place I can't visit again for awhile, yet.'
The thing about my friends, is that there's never any drama and if we have a beef about something, we talk to eachother about it, straight up. C and I had a casual conversation about how we were tripping off each other, and we ended up laughing in the end because the both of us were misinterperating each other's trip. Lack of communication - I suppose we were on different wavelengths which is ok.
... and remember - ALWAYS remember: It's all in your head.
Shrooms, I salute you.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


Introductions
nent functional components were built to make it easier to create personalized, conversational web experiences.
To demonstrate some of the functional capabilities, here we are going to collect data, store it in your browser and use it later.
Tell us what to call you and it will show up in fun ways later.


--- layout: cv title: "Katie Fenn: CV" ---
Seven years experience of professional software development in JavaScript, PHP, HTML and CSS.
Development of e-commerce sites for clients including PZ Cussons, Acne and Radley. Leading development teams, setting up automated development virtual machines with Vagrant and Chef. Line management of developers, reviewing salaries and bonuses, and running appraisals. Setting up, running and hosting developer evenings: technical and social events for developers. Assessing candidate recruit CVs and conducting interviews.
Development of websites for clients such as Castrol, AXA, BP, Tesco and the Open University.
Development of CPD software for secondary schools and professional bodies.
Development of clinical software RiO. Industrial placement year for undergraduate degree.
Owner and maintainer of Parker, a stylesheet analysis tool. Written in Node.JS, available for download using npm.
Final degree classification: upper second class honours (2:1). Subjects studied: Java EE, C++, C#, Python, UML, public key cryptography, software development methodologies.
I have an enduring love of videogames that I’ve turned into a hobby of organising regular events for gamers in Sheffield. Since founding First Play Sheffield, I’ve helped organise events for school children for Games Britannia, raise money for the charity Special Effect with a 24-hour game marathon, and I organised and ran the 2013 Sheffield Game Jam.
I am also a dedicated motorsport enthusiast, with a long-time following of the 24 Hours of Le Mans and Formula One.
Swimming and cycling are hobbies I enjoy to keep active.