text:
# LaTeX

### Short Topical Videos

• None

• LaTeX Tutorial Carl Heiles' original LaTeX tutorial (note: may need to save to disk first before opening)
• LaTex Tutorial Code: the raw code for compiling the above document

# LaTeX Is Your Friend OR ENEMY?????????.

Originally written by Nathan Lundblad

We present a paper on useful LaTeX stuff. Make sure to look at the source code for this document, as that is where the real story is. For more fun, look at Leslie Lamport’s book in the 705 Campbell bookshelf.

LaTeX (pronounced lay-teck or lah-teck) is a designer package based on a typesetting program called TeX  which was originated by Donald Knuth of Stanford many many years ago. LaTeX first appeared in 1985 and is extremely popular, particularly in the scientific community where it has become an almost universal standard. Using LaTeX will result in stunningly beautiful documents and will, in the long run—because of mathematics and labels/referencing—be easier to deal with than using Micro$oft Word${\displaystyle ^{tm}}$ and its cousins. Although creating reports and articles in a different fashion from what you may be used to can be a little intimidating at first, a few basic facts and a couple of good sample documents will take you a long way. ## How To Use LaTeX: The Most General Possible Summary Remember on PC word processors how there is an option called reveal codes or some such? Well, in LaTeX you essentially write those codes yourself, and then compile them to get your printable output. You’ll type up these codes in your favorite text editor and name the file something appropriate with a .tex suffix. Then you must compile that file at your shell prompt by typing pdflatex whatever (you can include the suffix .tex if you want). LaTeX will spit out some random files (provided you haven’t made any errors), including whatever.pdf, which is your printable output. LaTeX will also print some messages on your screen. Be sure to look at these messages!!!!!!! If your compilation failed, they will attempt to tell you what error you may have committed. Once you figure it out, you edit the tex file and try running pdflatex whatever again. The most common error is to forget the$ sign on each side of an equation, or to have unmatched curly brackets. The error message gives the line number; the easiest way to find the offending text is to go to that line number in your editor. NOTE that many times the error occurs before the line number given by the LaTeX output.

To view the whatever.pdf file on your terminal screen, type evince whatever.pdf at your shell prompt. The nicely-formatted output appears on the output window. You can edit the tex file and left click on your pdf output window; the updated text appears.

Look things over carefully and make any changes before printing it on paper—support environmentalism! Finally, to print the output when you’re all done:

1. lp whatever.pdf (prints the file).

## Some Basic Syntax

Every LaTeX document must be enclosed by a begin and end tags. Nothing goes after the latter, but some very important stuff goes before the former, such as documentclass declarations and suchlike, which you’ll learn about later. As you may have noticed, LaTeX reserves more than a few characters for its own nefarious purposes. Generally, to produce them in your final document you must invoke the backslash. The same method applies to other special characters: { # } %.

There are three kinds of hyphens in LaTeX: -,–, and —. The first is used for intra-word dashes, the second for number ranges (41–42), and the third for the standard intra-sentence dash—it’s my personal favorite. In other situations, just use whatever looks the best.

Grouping letters and words is accomplished with the { and } characters. Most commands only work on one group at a time, so surround the parts of your text you want to modify with curly brackets. For example, you can have italicized type, boldface type, and typewriter-type type.

Footnotes are incredibly easy to produce, and are automatically numbered.

The observant student in the back of the room may cleverly ask “So how do you create a backslash, if \represents a skipped line?”. Well, you have to use the verb (verbatim) environment, which is handily revealed in the source code. The argument of the verb environment is delimited by two identical characters; above, we used ampersands. You can use a pair of any normal characters as the delimiter. The verb environment has an unfortunate peculiarity: you have to put all of its argument on a single typed line in the tex file. Here’s an example of the output from the verbatim envroment:

function wopen
;+
;NAME:
;WOPEN -- return list of all open windows
;
; PURPOSE:
; Quick way to find all open windows
;
; CALLING SEQUENCE:
; result= wopen()
;
; INPUTS:
; NONE
;
; RETURNS: VECTOR OF OPEN WINDOWS
;
; RESTRICTIONS:
; The current device must be X Windows.
;
; MODIFICATION HISTORY:
; Written CARL, who finally got fed up
;-
; ARE YOU USING X WINDOWS DEVICE...
if (!d.name ne 'X') then begin
message, 'DEVICE not set to X Windows.', /INFO
return, -1
endif

; FIND THE OPEN WINDOWS...
device, window_state=openwindows
openwindows = where(openwindows,Nopen)

return, openwindows
end

The ${\displaystyle begin}$ tag with the verbatim environment has the perhaps unfortunate peculiarity that it skips and starts a new line.

## Labels/Referencing

When you’re preparing a LaTeX document, it’s smart, labor-saving, sophisticated, and good practice—but not necessary—to use the label command. The use of labels ensures that you can refer to sections, equations, figures, and tables by a name—i.e., by reference—and not a number. So what’s the difference? When you’re inserting, cutting, and pasting, you will lose count of what section you’re in or what equation is what, which will make referring to such objects in the text. Because I labeled the beginning of this section, I can always refer to it using the label, regardless of whether I go back and make changes in section order.

## Style files, packages, and user defined commands

You may have noticed the a documentclass in some LaTeX documents. This line sets a template for the document as a whole; it tells LaTeX that you want to write an article-type document using the American Astronomical Society’s preprint class package. The AAS TeX class (used for most astronomy documents) sets the font and layout for the entire document and it automatically loads some useful packages, which are collections of new commands that allow you to customize your document and do nifty things with images and layouts.

## Mathematics

The great beauty of LaTeX lies in how the math comes out. It does numbered equations exceptionally well, enables math within standard text, and has a shocking number of special characters available. Inserting standard equations into a LaTeX document is done with the equation environment, and works like so:

$$\label{laplacian} \frac{\partial^2 V} {\partial x^2}+\frac{\partial^2 V} {\partial y^2} + \frac{\partial^2 V}{\partial z^2}=0$$

Laplace would have loved LaTeX. You can also do Greek letters easily:

$$\label{gammaeq} \gamma=\frac{1}{\sqrt{1-\beta^2}}$$

If you want to put mathematics into text, you can use math mode, which is commonly delimited by dollar signs. If you want to show a matrix math equation, you use the eqnarray environment:

\begin{eqnarray} \label{smeqn}
\left[
\begin{array}{cccc}
{[ ss ]} & {[ st ]} & {[ su ]} & {[ sv ]} \\
{[ ts ]} & {[ tt ]} & {[ tu ]} & {[ tv ]} \\
{[ us ]} & {[ ut ]} & {[ uu ]} & {[ uv ]} \\
{[ vs ]} & {[ vt ]} & {[ vu ]} & {[ vv ]} \\
\end{array}
\; \right]
\cdot
\left[
\begin{array}{c}
A \\
B \\
C \\
D \\
\end{array}
\; \right]
\; =
\left[
\begin{array}{c}
{[ s y ]} \\
{[ t y ]} \\
{[ u y ]} \\
{[ v y ]} \\
\end{array}
\; \right]
\end{eqnarray}

If you want an equation, such as ${\displaystyle \alpha =\beta \times \Lambda \cdot 4}$, to be in bold—including those Greek letters—surround the whole equation by boldmath.

## Figures

If you want to bring in plots from Python or, for that matter, an arbitrary graphic, you should put the following line in your tex document, before the begin document part. Common formats are png (good for lines), jpg (good for images), and pdf (best for plots/line figures). Each of these formats has a different way of representing graphics. In particular, pdf (and ps) can represent plots and figures in vector graphic form — as instructions for drawing each line of the figure. This form, which contrasts bitmap image formats like png and jpg, is infinitely scalable and never has pixelization issues, making it ideal for representing figures in a paper. Once you have your graphics file the file in the same directory as your .tex file, you can insert it into the document like so:

\begin{figure}[h!]
\begin{center}
\includegraphics[width=.6\textwidth]{2dgaussian.pdf}
\caption{A Gaussian. \label{gaussfig}}
\end{center}
\end{figure}

In addition to width, you can define height, angle, and scale. If you specify only width or height, the other dimension scales automatically. If you specify both, you can stretch the image. Angle rotates the image by some number of degree in the positive direction. Scale multiplies the picture’s original size by the number you specify. When specifying width or height, you must include units. Some options are: textwidth, in, cm, pt, em, ex. See the Not So Short Guide for more info.

If you want to display several pictures together or have size scaling or stretching or rotation, as in Figure None, you can do this.

\begin{figure} [!p]
\begin{center}
\includegraphics[width=1in,height=5in]{2dgaussian.pdf}
\includegraphics[width=5in,height=1in,angle=180]{2dgaussian.pdf}
\includegraphics[scale=0.1,angle=45]{2dgaussian.pdf}
\end{center}
\caption{This is a very silly figure! \label{silly}}
\end{figure}

One of the most difficult tasks for the novice (and, even, the experienced!) typesetter is image placement. LaTeX places floating bodies where it thinks they best fit, which isn’t always the most logical place in a document. You have one way to control placement: the placement commands, which work for tables and figures. They are: [h!], [t!], [p!], [b!], meaning: “put here”, “put at top of page”, ”make a new page”, “put at bottom of page”. Sometimes they are frustratingly inattentive to your desires; this occurs because LaTeX is smarter than you think it is—there’s not enough space to put the figure exactly where you want it. .Judicious use of sizing (for images) and using smaller fonts (for tables), or relocating, are your only options.

## Tables

Tables are useful for displaying a large number of results. There are two environments provided for tables; {table}&, which is a \LaTeX\ resident environment, and deluxetable, which is an AAS\TeX\ custom environment. table is a simpler version for which the placement commands work; deluxetable is a more elaborate version for which the placement commands do not work---it always puts the table at the very end, so it's not very nice for lab reports.

Let's begin with the ordinary table, which is more flexible because you the placement commands work.

\begin{verbatim} \begin{table}[!b] %THE [!b] TELLS IT TO PUT THE TABLE AT THE BOTTOM OF THE PAGE. %IF YOU USED [!t] IT WOULD PUT IT AT THE TOP. \begin{center} \caption{Sample table \label{normtable}} %TABULAR FORMAT IS THE WORD HERE; the c's represent centered %columns, and the vertical bars represent vertical lines. %Lines are broken by \\, and columns are separated by the %ampersand. \begin{tabular}{|c|c|} \hline Temperature & Voltage Drop \\ \hline \hline 310K & 0.6761V$\pm$0.0004V\\ \hline 300K & 0.7064V$\pm$0.0005V\\ \hline 77K & 1.5318V$\pm$0.001V\\ \hline \end{tabular} \end{center} \end{table} \end{verbatim}

And now, we end with the deluxetable; it's always at the end, on its very own page. Because we're ending with it, this is one of the few instances where it's properly placed---but because it's on its own page, it's placement definitely not elegant!

\end{document}

format: plain


text:
# Pic programming hi-tech c

#### BoVice

Joined Apr 5, 2017
3
Good morning everyone,

I'm using my old PICkit 2 and 44 pin demo board from my school days to get "re-aquainted". I'm using the hi-tech c compiler.
I made a simple program to turn on the the 8 lights connected to PORTD when the button connected to RB0 is pressed, and then go out when not pressed. I notice that sometimes when the lights come on, one or two of them are not lit. No specific ones In particular.

I've also noticed a few anomalies when I make changes in my program statements.

For example, I used an "if/else" statement;

ANSEL = 0x00
ANSELH = 0x00

Void main (void)
{
If (RB0 = 0x00)
TRISD = 0XFF;
ELSE
TRISD = 0xFF;
}

Now this program does turn the lights on and off. But when I change the argument of RB0 = 0x00 to RB0 = 0x01 I would expect this to work opposite of how it did before, yet it doesn't.

I'm not sure if my thinking / program is incorrect or if the PIC is internally compromised somehow. A "shove" in the right direction would be appreciated

#### BoVice

Joined Apr 5, 2017
3
TRISD = 0x00 after the "else".

My apologies

#### MrChips

Joined Oct 2, 2009
22,531
You have made a common mistake in syntax that is not flagged as an error by the compiler.

RB0 = 0x00 is an assignment statement
RB == 0x00 is the proper statement for equality test

You could have used

if (RB)

#### spinnaker

Joined Oct 29, 2009
7,835
And it is else not ELSE.

and void not Void

and if not If.

and

ANSEL = 0x00;
ANSELH = 0x00;

not

ANSEL = 0x00
ANSELH = 0x00

And the above code is outside your main statement.

And your if statement is superfluous anyway. Both branches do the same thing. plus they don't do anything except set PORTD as an output.

And you don't have a while loop. Your code is going to end before you even think of pressing the switch.

With all of that wrong I do not see how the code could possible compile let alone work.

Please don't tell us you manually retyped the code in instead of pasting thereby introducing all of those syntax and coding errors?

Plus hitech is dead and buried. Long past time to move on to xc.

Last edited:

#### spinnaker

Joined Oct 29, 2009
7,835
Assuming you do your switches like I do this should work.

Code:
void main (void)
{

ANSEL = 0x00;
ANSELH = 0x00;
TRISD = 0X00;

while(1)
{
if (RB0 == 0x00)
LATD = 0;
else
LATD = 0xFF;
}

}

Last edited:

#### AlbertHall

Joined Jun 4, 2014
10,778
If (RB0 = 0x00)
TRISD = 0XFF;
You can control the outputs by changing the pins from inputs to outputs, but it is not the normal way of doing it and it will cause problems when you want to use bit operations on the port because of the 'read-modify-write' method.

TRISD = 0XFF
TRISD = 0x00; // Set Port D to all outputs

#### spinnaker

Joined Oct 29, 2009
7,835
TRISD = 0x00; // Set Port D to all outputs
oops my dyslexia strikes again.

#### spinnaker

Joined Oct 29, 2009
7,835
You can control the outputs by changing the pins from inputs to outputs, but it is not the normal way of doing it and it will cause problems when you want to use bit operations on the port because of the 'read-modify-write' method.
And you can only do it if the circuit is wired appropriately.

#### BoVice

Joined Apr 5, 2017
3
And it is else not ELSE.

and void not Void

and if not If.

and

ANSEL = 0x00;
ANSELH = 0x00;

not

ANSEL = 0x00
ANSELH = 0x00

And the above code is outside your main statement.

And your if statement is superfluous anyway. Both branches do the same thing. plus they don't do anything except set PORTD as an output.

And you don't have a while loop. Your code is going to end before you even think of pressing the switch.

With all of that wrong I do not see how the code could possible compile let alone work.

Please don't tell us you manually retyped the code in instead of pasting thereby introducing all of those syntax and coding errors?

Plus hitech is dead and buried. Long past time to move on to xc.
Actually i DID retype the code. I was at work and had some downtime and figured i would look for an answer. Code was on my home computer.
sorry if i offended you

#### spinnaker

Joined Oct 29, 2009
7,835
Actually i DID retype the code. I was at work and had some downtime and figured i would look for an answer. Code was on my home computer.
sorry if i offended you

It didn't "offend" me. It just made the post awfully confusing and it caused people to chase down problems that did not exist. Next time wait till you get home in front of your code to post.


text:
# Is the number of linearly independent rows equal to the number of linearly independent columns?

For any matrix the column rank and row rank are equal. As I understand it rank means the number of linearly independent vectors, where vectors is either the rows or columns of the matrix.

This seems to mean that the number of linearly independent rows in a matrix is equal to the number of linearly independent columns? But my gut tells me this shouldn't be the case, at least intuitively I can't see why it would be the case.

It is true.

There are many ways to show this.

One of the most constructive ones is to transform the matrix to its "echelon form", using elementary transformations which do not change the number of linearly independent rows or columns.

What you obtain in the end is a diagonal matrix, with ones followed by zero in the diagonal. Clearly, in such a matrix the number of linearly independent rows is the same with the number of linearly independent columns.

• so this also means only square matrices can be full rank? (or at least, a non sure matrix must have at least one linearly dependant row or column) Sep 6, 2015 at 15:45
• If $A\in\mathbb R^{m\times n}$, then Rank$(A)\le\,$ min$\{m,n\}$. Sep 7, 2015 at 8:23
• Is it possible to draw the conclusion from the definition of rank that depicted in the question?
– user464147
Sep 9, 2019 at 11:54

For instance the rank of the matrix is the largest dimension of an invertible square submatrix. This criterion is independenty of whether you work with rows or with columns.

You also can say it is the size of the largest non-zero minor of the associated determinant.


text:
# Gaussian vs. non-Gaussian fluctuations

1. Jan 27, 2016

### Einj

Hello everyone,
I know this is a very basic question but I was wondering, in the context of inflation, what does it mean to have gaussian or non-gaussian fluctuations.
First of all, are we talking about the fluctuations of the inflation?
Second of all, how is the nature of the fluctuations related to the mechanism of inflation, say e.g. the inflaton potential?

Thanks!

2. Jan 28, 2016

### Chronos

Gaussian, wrt to the CMB, refers to a distribution of CMB photons that is consistent with a gaussian probability curve [i.e., random]. A non-guassian distribution suggests a preferred distribution of CMB photons [i.e., corresponding to topological defects in the universe]. Most cosmologists are suspicious of non gaussianity because it violates the cosmological principle.

3. Jan 28, 2016

### Einj

Thanks for the reply! How can non-gaussianity be generated at the level of inflation?

4. Jan 28, 2016

### Chronos

5. Jan 28, 2016

### bapowell

All sorts of ways: multiple fields, non-slow roll evolution, strong higher-order couplings, non-trivial vacuum/initial state, non-canonical kinetic terms (e.g. DBI inflation), etc....

6. Jan 28, 2016

### bapowell

Nongaussianity can also arise in the distribution of the amplitude of fluctuations (the $a_{\ell m}$) in the temperature power spectrum. I believe this can happen without violating isotropy.


text:
# Word Problem 8 (Food quantity and days)

Problem 8: If 20 men can eat 200 kgs of wheat in 40 days, then 10 men can eat 200 kgs of wheat in how many days?

a. 40 days          b. 20 days                  c. 80 days              d. 120 days

-math aptitude test-

Solution:

This is an indirect proportion problem. Here if more men eat the wheat then less number of days it will finish ! So, one quantity (men) increases while other(days) decreases!

We suppose that 10 men will eat the wheat in ‘x’ days !

We arrange this data as under by putting arrows in opposite directions (because it is indirect proportion problem);

Now we write two fractions in which tail terms will be nominators and head terms will be denominators and put equal sign between these;

i-e

Solving for ‘x’ we get;

So, 10 men will finish the wheat in 80 days, hence option ‘d’ is correct answer

•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Insert math as
$${}$$


text:
Coulomb's Law (Electric Force) Video Lessons

Concept

# Problem: Part AWhat is the strength of an electric field that will balance the weight of a proton?Part BWhat is the direction of an electric field that will balance the weight of a proton?a) upwardb) downwardPart C What is the strength of an electric field that will balance the weight of an electron?Part DWhat is the direction of an electric field that will balance the weight of an electron?a) upwardb) downward

###### FREE Expert Solution

Part A

$\overline{){\mathbf{F}}{\mathbf{=}}{\mathbf{q}}{\mathbf{E}}}$

$\overline{){\mathbf{W}}{\mathbf{=}}{\mathbf{m}}{\mathbf{g}}}$

q = +1.6 × 10-19 C

m = 1.67 × 10-27 kg

g = 9.8 m/s2

$\begin{array}{rcl}\mathbf{\Sigma }\mathbf{F}& \mathbf{=}& \mathbf{m}\mathbf{a}\\ \mathbf{qE}\mathbf{-}\mathbf{mg}& \mathbf{=}& \mathbf{0}\\ \mathbf{E}& \mathbf{=}& \frac{\mathbf{m}\mathbf{g}}{\mathbf{q}}\\ & \mathbf{=}& \frac{\mathbf{\left(}\mathbf{1}\mathbf{.}\mathbf{67}\mathbf{×}{\mathbf{10}}^{\mathbf{-}\mathbf{27}}\mathbf{\right)}\mathbf{\left(}\mathbf{9}\mathbf{.}\mathbf{8}\mathbf{\right)}}{\mathbf{\left(}\mathbf{1}\mathbf{.}\mathbf{6}\mathbf{×}{\mathbf{10}}^{\mathbf{-}\mathbf{19}}\mathbf{\right)}}\end{array}$

90% (394 ratings)
###### Problem Details

Part A

What is the strength of an electric field that will balance the weight of a proton?

Part B

What is the direction of an electric field that will balance the weight of a proton?

a) upward

b) downward

Part C

What is the strength of an electric field that will balance the weight of an electron?

Part D

What is the direction of an electric field that will balance the weight of an electron?

a) upward

b) downward

Frequently Asked Questions

What scientific concept do you need to know in order to solve this problem?

Our tutors have indicated that to solve this problem you will need to apply the Coulomb's Law (Electric Force) concept. You can view video lessons to learn Coulomb's Law (Electric Force). Or if you need more Coulomb's Law (Electric Force) practice, you can also practice Coulomb's Law (Electric Force) practice problems.


text:
# Magnetism

In electrostatics, we defined polarization,
$\myv P \equiv$ electric dipole moment per unit volume.

Now, Magnetization:
$\myv M \equiv$ magnetic dipole moment per unit volume.

There are at least three different kinds of magnetic behavior of materials:

• $\frac {d \myv M}{d \myv B} \gt 0$: para-magnetism,
• $\frac{d \myv M}{d \myv B} \lt 0$: dia-magnetism, and
• $\myv M \neq 0$ even when $\myv B=0$: ferro-magnetism.

### Torques on a constant-current loop

So, let's calculate the torque in a magnetic field of one such rectangular loop:

The magnetic force on a line of current is: $$\myv F_m = \int dq\,\myv v\times\myv B=I \int d\myv l \times \myv B.$$

The loop shown is tilted by an angle $\theta$ from the $x$-$y$-plane. There is a magnetic field in the $\uv{z}$ direction, so $\myv B = B\uv{z}$. The forces are all towards the outside.

Only the forces on the sides of length $b$ will exert a torque on the loop. The force on one is: $$F=IbB.$$

The torque resulting from these two forces is: $$\myv \Gamma = Fa \sin \theta\uv{x}.$$

Putting these together... $$\myv \Gamma = Iab B \sin \theta\uv{x} = \myv m \times \myv B .$$

The net effect of this torque is a tendency for magnetic dipoles to line up with the magnetic field. This accounts for paramagnetism in a general way. (Why doesn't the current change instead of the tilt... huh?)

In real materials, because of the Pauli exclusion principle, every filled orbital will have just as many spin up as spin down electrons. This combination acts like something with no net magnetic dipole moment. So paramagnetism should only occur in materials that have an unpaired electron (materials with odd $Z$).

### Mutual spin orientation

If the magnetic field is due to a current loop at the origin with a dipole-ish field, and we place a second small loop at ${\cal A}$ which is free to rotate, what orientation will the small dipole take on? What orientation would a small dipole at ${\cal B}$ take on?

### "Orbiting" charge

QM does not support the idea of an electron orbiting the nucleus like a planet about the sun.

Still this classical picture can account qualitatively for diamagnetism:

• The electric force of the positive nucleus: $$\frac{e^2}{4\pi\epsilon_0 R^2} = m_e\frac{v^2}{R}.$$
• The hurtling electron looks like a current: $$I=\lambda v=\frac{ev}{2\pi R},$$
• with a dipole moment $m=I\pi R^2$: $$\myv m=-\frac{1}{2}evR \uv{z}.$$

Now, imagine that a magnetic field is turned on:

• $\myv v \times \myv B$ points outward,
• But $F_m = -e\myv v \times \myv B$ points inward.
• With a greater inward force, the electron's velocity increases. [Why can't it change radius? Ultimately QM...]
• This means that the orbital magnetic dipole moment increases in the negative $\uv{z}$ direction--opposite the magnetic field.
• The magnetic field due to this increased speed electron opposes the applied $\myv B$ field.

This is apparently diamagnetism: Magnetization increases opposite to the magnetic field.

This affects both electrons (even if opposite spin orientation) in the same orbital angular momentum state. It is most prominent in materials with closed electron shells (that is, no spare electrons that are subject to paramagnetism).

Most materials (including frogs) are weakly diamagnetic.

Diamagnetism is a weak effect. If a material responds both diamagnetically and paramagnectically to some extent, its net behaviour is usual paramagnetic.

There is no diamagnetic effect for an isolated electron. Why?

We can't justify classically this business of assuming that the electron has to stay in an orbit at the same distance. Diamagnetism is ultimately a quantum phenomenon. But the behavior of this classical picture does agree with the empirical behavior of real (quantum) diamagnets.

#### Problem 6.6

Which would you expect to be diamagnetic or paramagnetic?: Al, Cu, CuCl2, C, Pb, N2, NaCl, Na (metal), sulfer, H2O ?


text:
Browse Questions

# According to Cahn- lngold- Prelog sequence rules, the correct order of priority for the given groups is :

$\begin {array} {1 1} (1)\;COOH > - CH_2OH > -OH < - CHO \\ (2)\;-COOH > - CHO > - CH_2OH > - OH \\ (3)\;-OH > -CH_2 OH > - CHO > -COOH \\ (4)\;-OH > - COOH > - CHO > -CH_2OH \end {array}$

$(4)\;-OH > - COOH > - CHO > -CH_2OH$


text:
## Algebraic & Geometric Topology

### On nonseparating contact hypersurfaces in symplectic $4$–manifolds

#### Abstract

We show that certain classes of contact $3$–manifolds do not admit nonseparating contact type embeddings into any closed symplectic $4$–manifold, eg this is the case for all contact manifolds that are (partially) planar or have Giroux torsion. The latter implies that manifolds with Giroux torsion do not admit contact type embeddings into any closed symplectic $4$–manifold. Similarly, there are symplectic $4$–manifolds that can admit smoothly embedded nonseparating hypersurfaces, but not of contact type: we observe that this is the case for all symplectic ruled surfaces.

#### Article information

Source
Algebr. Geom. Topol., Volume 10, Number 2 (2010), 697-737.

Dates
Accepted: 5 January 2010
First available in Project Euclid: 19 December 2017

https://projecteuclid.org/euclid.agt/1513715112

Digital Object Identifier
doi:10.2140/agt.2010.10.697

Mathematical Reviews number (MathSciNet)
MR2606798

Zentralblatt MATH identifier
1207.32019

Subjects
Primary: 32Q65: Pseudoholomorphic curves
Secondary: 57R17: Symplectic and contact topology

#### Citation

Albers, Peter; Bramham, Barney; Wendl, Chris. On nonseparating contact hypersurfaces in symplectic $4$–manifolds. Algebr. Geom. Topol. 10 (2010), no. 2, 697--737. doi:10.2140/agt.2010.10.697. https://projecteuclid.org/euclid.agt/1513715112

#### References

• C Abbas, Holomorphic open book decompositions
• M Bhupal, K Ono, Symplectic fillings of links of quotient surface singularities
• F Bourgeois, Y Eliashberg, H Hofer, K Wysocki, E Zehnder, Compactness results in symplectic field theory, Geom. Topol. 7 (2003) 799–888
• Y Eliashberg, Filling by holomorphic discs and its applications, from: “Geometry of low-dimensional manifolds, 2 (Durham, 1989)”, (S K Donaldson, C B Thomas, editors), London Math. Soc. Lecture Note Ser. 151, Cambridge Univ. Press (1990) 45–67
• Y Eliashberg, A few remarks about symplectic filling, Geom. Topol. 8 (2004) 277–293
• J B Etnyre, Planar open book decompositions and contact structures, Int. Math. Res. Not. (2004) 4255–4267
• J B Etnyre, private communication (2008)
• J B Etnyre, K Honda, On symplectic cobordisms, Math. Ann. 323 (2002) 31–39
• J B Etnyre, J Van Horn-Morris, Fibered transverse knots and the Bennequin bound
• D T Gay, Four-dimensional symplectic cobordisms containing three-handles, Geom. Topol. 10 (2006) 1749–1759
• H Geiges, Examples of symplectic $4$–manifolds with disconnected boundary of contact type, Bull. London Math. Soc. 27 (1995) 278–280
• H Geiges, Constructions of contact manifolds, Math. Proc. Cambridge Philos. Soc. 121 (1997) 455–464
• H Geiges, An introduction to contact topology, Cambridge Studies in Advanced Math. 109, Cambridge Univ. Press (2008)
• E Giroux, Links and contact structures, Lecture notes, Georgia Topology Conference (2001) Available at \setbox0\makeatletter\@url http://www.math.uga.edu/~topology/2001/giroux.pdf {\unhbox0
• M Gromov, Pseudoholomorphic curves in symplectic manifolds, Invent. Math. 82 (1985) 307–347
• M Gromov, Partial differential relations, Ergebnisse der Math. und ihrer Grenzgebiete (3) 9, Springer, Berlin (1986)
• H Hofer, Pseudoholomorphic curves in symplectizations with applications to the Weinstein conjecture in dimension three, Invent. Math. 114 (1993) 515–563
• H Hofer, V Lizan, J-C Sikorav, On genericity for holomorphic curves in four-dimensional almost-complex manifolds, J. Geom. Anal. 7 (1997) 149–159
• H Hofer, K Wysocki, E Zehnder, Properties of pseudo-holomorphic curves in symplectisations. II. Embedding controls and algebraic invariants, Geom. Funct. Anal. 5 (1995) 270–328
• H Hofer, K Wysocki, E Zehnder, Properties of pseudoholomorphic curves in symplectisation. IV. Asymptotics with degeneracies, from: “Contact and symplectic geometry (Cambridge, 1994)”, (C B Thomas, editor), Publ. Newton Inst. 8, Cambridge Univ. Press (1996) 78–117
• H Hofer, K Wysocki, E Zehnder, Properties of pseudoholomorphic curves in symplectisations. I. Asymptotics, Ann. Inst. H. Poincaré Anal. Non Linéaire 13 (1996) 337–379
• H Hofer, K Wysocki, E Zehnder, Properties of pseudoholomorphic curves in symplectizations. III. Fredholm theory, from: “Topics in nonlinear analysis”, (J Escher, G Simonett, editors), Progr. Nonlinear Differential Equations Appl. 35, Birkhäuser, Basel (1999) 381–475
• C Hummel, Gromov's compactness theorem for pseudo-holomorphic curves, Progress in Math. 151, Birkhäuser Verlag, Basel (1997)
• Y Kanda, The classification of tight contact structures on the $3$–torus, Comm. Anal. Geom. 5 (1997) 413–438
• R Lutz, Structures de contact sur les fibrés principaux en cercles de dimension trois, Ann. Inst. Fourier $($Grenoble$)$ 27 (1977) ix, 1–15
• D McDuff, The structure of rational and ruled symplectic $4$–manifolds, J. Amer. Math. Soc. 3 (1990) 679–712
• D McDuff, Symplectic manifolds with contact type boundaries, Invent. Math. 103 (1991) 651–671
• D McDuff, D Salamon, $J$–holomorphic curves and symplectic topology, Amer. Math. Soc. Coll. Publ. 52, Amer. Math. Soc. (2004)
• E Mora, Pseudoholomorphic cylinders in symplectisations, PhD thesis, New York University (2003)
• H Ohta, K Ono, Simple singularities and symplectic fillings, J. Differential Geom. 69 (2005) 1–42
• R Siefring, Intersection theory of punctured pseudoholomorphic curves
• R Siefring, C Wendl, Pseudoholomorphic curves, intersections and Morse–Bott asymptotics, in preparation
• J-Y Welschinger, Effective classes and Lagrangian tori in symplectic four-manifolds, J. Symplectic Geom. 5 (2007) 9–18
• C Wendl, Automatic transversality and orbifolds of punctured holomorphic curves in dimension four, to appear in Comment. Math. Helv.
• C Wendl, Compactness for embedded pseudoholomorphic curves in $3$–manifolds, to appear in J. Eur. Math. Soc. (JEMS)
• C Wendl, Contact fiber sums, monodromy maps and symplectic fillings, in preparation
• C Wendl, Holomorphic curves in blown up open books
• C Wendl, Open book decompositions and stable Hamiltonian structures, to appear in Expos. Math.
• C Wendl, Punctured holomorphic curves with boundary in $3$–manifolds: Fredholm theory and embededdness, in preparation
• C Wendl, Strongly fillable contact manifolds and $J$–holomorphic foliations, to appear in Duke Math. J.
• C Wendl, Finite energy foliations and surgery on transverse links, PhD thesis, New York University (2005)
• K Zehmisch, The Eliashberg–Gromov tightness theorem, Diplom Thesis, Universität Leipzig (2003)


text:
• Research paper •

### A 1-D time-domain method for 2-d wave motion in elastic layered half-space by antiplane wave oblique incidence

,

1. 清华大学土木工程系，100084
• Received:1900-01-01 Revised:1900-01-01 Online:2006-03-25 Published:2006-03-25

Abstract: A 1-D finite element method in time domain is developed in this paper, which can be used to calculate the wave motion of free field in elastic layered half-space by antiplane SH wave oblique incidence. When the layered half-space is discretized, the vertical element size is determined conforming to the simulation accuracy; the horizontal element size is determined automatically by the horizontal apparent wave velocity and the discrete time step in the step-by-step calculation, and then the elements are divided virtually. Artificial boundary is constructed on the bottom of the computational area and the input wave motion is transformed into an equivalent load, which is applied on the nodes of the boundary. Then, the finite element method with lumped mass and the central difference method are combined to establish the wave motion equations in 2-D finite element model. Since the displacement of any node in the finite element model can be represented by that of the adjacent node in the horizontal direction, the 2-D wave motion equations can be transformed into 1-D equations. By solving the 1-D equations, the displacement of nodes in one vertical line can be obtained. Finally, the wave motion in elastic half-space is obtained based on the propagation characteristics of traveling wave. Both the theoretical analysis and the numerical results demonstrate that the proposed method features high accuracy and good stability.


text:
# Apply Symbology from Layer Not Working in Script

I am working on applying symbology to multiple layers from lyr files for multiple MXDs within the IDE. I have been able to access the MXDs and iterate through and change the definition of "mxd". I am receiving the following error, however, when the ApplySymbologyFromLayer_management process is run:

ERROR 000732: Input Layer: Dataset FCname does not exist or is not supported

My script is as follows:

# the MXDs to change, accessed and processed individually as 'i' is script not shown
mxd = arcpy.mapping.MapDocument(r'C:\Path\to\mxd\doc.mxd')
for lyr in arcpy.mapping.ListLayers(mxd):
if lyr.name == 'FCname':
arcpy.ApplySymbologyFromLayer_management(
in_layer="FCname",
in_symbology_layer="C:\Path\to\lyrs\FCname.lyr")

I have repeated the same ApplySymbologyFromLayer_management tool within ArcMap successfully. Any ideas on why this process is not succeeding within my script?

# the MXDs to change, accessed and processed individually as 'i' is script not shown


text: Fahrenheit Widely used in the United States, the Fahrenheit scale is named after Daniel Gabriel Fahrenheit , inventor of … Réaumur to Fahrenheit Conversion Formula. 28.9° reaumur to fahrenheit. 54 Fahrenheit (F) = 9.778 Reaumur (Re) 1 F = -13.778 Re. To convert between Reaumur and Celsius you have to do the following: First divide 3 / 0 = 3. This range is divided into 80 equal parts (degrees Reaumur). Please provide values below to convert Fahrenheit [°F] to Reaumur [°r], or vice versa. The Reaumur [°r] to Celsius [°C] conversion table and conversion steps are also listed. The Réaumur temperature scale was proposed by René Antoine Ferchault de Réaumur in 1730, and it is based on the water tristate as well as Celsius, placing the 0 at the point when the liquid water freezes, and the value of 80 at the point when the liquid water boils. Online Unit Converter will convert the units of temperature Celsius, Fahrenheit, Kelvin, Rankine, Newton, Reaumur, Romer, Delisle with a metric conversion. Based upon the definitions of the Fahrenheit scale and the experimental evidence that absolute zero is -459.67ºF . Fahrenheit. 1 Reaumur in Celsius = 3. Réaumur. Date time text decoder to RFC3339 EXTENDED format. Reaumur : The Réaumur scale, also known as the "octogesimal division", is a temperature scale in which the freezing and boiling points of water are set to 0 and 80 degrees respectively. The scale is named after René Antoine Ferchault de Réaumur, who first proposed something similar in 1730. Enter the temperature to be used in the conversion Which temperature scale to convert to? 1 Re = 34.250 F. More information from the unit converter. The scale is named for René Antoine Ferchault de Réaumur, who first proposed a similar scale in 1730.. Change in scale Others Temperature converter . Réaumur to Celsius formula °C = ºRé _____ 0.80000. Reaumur or Fahrenheit The SI base unit for temperature is the kelvin. Celsius and Fahrenheit Tc = (5/9)*(Tf-32); Tc = temperature in degrees Celsius, Tf = temperature in degrees Fahrenheit The Réaumur scale (French pronunciation: [ʁeomy(ː)ʁ]; °Ré, °Re, °r), also known as the "octogesimal division", is a temperature scale for which the freezing and boiling points of water are defined as 0 and 80 degrees respectively. Do you find this tool useful? Fahrenheit : Celsius, also known as centigrade, is a scale and unit of measurement for temperature. Instant free online tool for Fahrenheit to Reaumur conversion or vice versa. The scale is named after René Antoine Ferchault de Réaumur, who first proposed something similar in 1730. Widely used in the United States, the Fahrenheit scale is named after Daniel Gabriel Fahrenheit, inventor of the alcohol and mercury thermometers. 28.9 celsius in rankine. How to convert Reaumur to Fahrenheit. Type in your own numbers in the form to convert the units! Its symbol are °Ré, °Re and °R. Convert 400 degrees Réaumur to Fahrenheit (°Ré to °F). Convert 80 degrees Réaumur to degree Fahrenheit (°Ré to °F). The converted temperature will appear here right after we get your input. The Fahrenheit scale is a temperature scale based on one proposed in 1724 by Amsterdam-based physicist Daniel Gabriel Fahrenheit (1686–1736), after whom the scale is ..more definition+ The Reaumur scale, symbol (°Ré, °Re, °r), also known as the "octogesimal division", is a temperature scale for which the freezing and boiling points of water are defined ..more definition+ The answer is 9.778. Its symbol are °Ré, °Re and °R. In relation to the base unit of [temperature] => (kelvin), 1 Celsius (°C) is equal to 274.15 kelvin, while 1 Reaumur … The freezing point of water is 32 °F, and the boiling point is 212 °F. This page features online conversion from degrees Reaumur to degrees Fahrenheit.These units belong to the same measurement system: Temperature Scale Conversion. 70 Reaumur (Re) = 189.500 Fahrenheit (F) 1 Re = 34.250 F. 1 F = -13.778 Re. You can convert temperatures from Réaumur (°Ré) to Fahrenheit (°F) instantly using this tool. The Réaumur scale also known as the "octogesimal division", is a temperature scale in which the freezing and boiling points of water are set to 0 and 80 degrees respectively. Convert to degrees fahrenheit (°F) Degrees celsius 1 °C = 33.8 °F Degrees fahrenheit 1 °F = 1 °F Kelvins 1 K = -457.87 °F Degrees rankine 1 °R = -458.67 °F Degrees delisle 1 °De = 210.8 °F Degrees newton 1 °N = 37.454545454546 °F Degrees réaumur 1 °Ré = 34.25 °F Degrees rømer 1 °Rø = 9.7142857142857 °F Konversi suhu Reaumur ke suhu Fahrenheit didasarkan pada perbandingan skala suhu Fahrenheit terhadap suhu Reaumur yaitu 180/80 = 9/4. Fahrenheit : Celsius, also known as centigrade, is a scale and unit of measurement for temperature. Fahrenheit : Celsius, also known as centigrade, is a scale and unit of measurement for temperature. Réaumur (°Ré) To Fahrenheit (°F) Converter, Fahrenheit (°F) To Réaumur (°Ré) Converter. only? If you need to convert degrees Reaumur to another compatible unit, please pick the one you need on the page below. 1 Fahrenheit = 0.029197080291974 Reaumur. The common scales for most temperature expressions are Celsius and Fahrenheit while Kelvin, Réaumur, and Rankine are used for specialized scientific applications. The Fahrenheit temperature scale was proposed by Daniel Gabriel Fahrenheit in 1724 with the idea of starting from a brine solution freezes as 0, and 96 is the average temperature of human body. Instant free online tool for Reaumur to Fahrenheit conversion or vice versa. Example: convert 70 °r to °F: 70 °r = 16.888888888891 °F This is a free online Réaumur (°Ré) to Fahrenheit (°F) conversion calculator. 1 Fahrenheit = 0.029197080291974 Reaumur. Its symbol are °Ré, °Re and °R. Free online temperature conversion. The Fahrenheit temperature scale values are calculated from Réaumur using the formula $$Réaumur × {9 \over 4} + 32$$. Combinations. The scale is named after René Antoine Ferchault de Réaumur. Convert: (Please enter a number) From: To: Lastest Convert Queries. By the way, to convert between Fahrenheit and Réaumur, you can use this application so easily. Q: How many Fahrenheit in 70 Reaumur? Fahrenheit : Celsius, also known as centigrade, is a scale and unit of measurement for temperature. Use this page to learn how to convert between degrees Réaumur and degrees Fahrenheit. Fahrenheit. Reverse formula and conversion (Réaumur to Fahrenheit) Fahrenheit. 10,000 Fahrenheit in Reaumur = 3333.33333333 °F; Symbol: °F Description: It takes divisions between the freezing point of a solution of ammonium chloride (which is assigned zero value) and the human body's normal temperature (assigned to value 100). Lucentinian Works Co Ltd and ehehdada, ltd. 1 Reaumur = 34.249999999996 Fahrenheit. Also, explore tools to convert Reaumur or Celsius to other temperature units or learn more about temperature conversions. Reaumur to Fahrenheit Fahrenheit to Reaumur ; 0.01 Reaumur [°r] = 0.34249999999996 Fahrenheit [°F] Fahrenheit to Réaumur Temperature Scales Conversions. 20 Degrees Reaumur to Degrees Fahrenheit = 77: 900 Degrees Reaumur to Degrees Fahrenheit = 2057: 30 Degrees Reaumur to Degrees Fahrenheit = 99.5: 1,000 Degrees Reaumur to Degrees Fahrenheit = 2282: 40 Degrees Reaumur to Degrees Fahrenheit = 122: 10,000 Degrees Reaumur to Degrees Fahrenheit = 22532: 50 Degrees Reaumur to Degrees Fahrenheit = 144.5 Note that rounding errors may occur, so always check the results. Celsius. Use the unit converter to convert from Degrees réaumur to Degrees celsius, Degrees fahrenheit, Kelvins, Degrees rankine, Degrees delisle, Degrees newton, Degrees rømer From To Link to this page. Reaumur : The Réaumur scale, also known as the "octogesimal division", is a temperature scale in which the freezing and boiling points of water are set to 0 and 80 degrees respectively. From: Fahrenheit: To: Reaumur Fahrenheit to Reaumur Conversion Table. Fahrenheit to Réaumur Temperature Scales Conversions. The Reaumur scale, symbol (°Ré, °Re, °r), also known as the "octogesimal division", is a temperature scale for which the freezing and boiling points of water are defined..more definition+. Convert: (Please enter a number) From: To: Lastest Convert Queries-69.3 Fahrenheit to … Fahrenheit to Réaumur table. Q: How many Reaumur in 1 Fahrenheit? Q: How many Fahrenheit in 1 Reaumur? ºRé = (°F - 32)* 0.44444 . Also, explore tools to convert Fahrenheit or Reaumur to other temperature units or learn more about temperature conversions. Then share it with your friends, family, users or visitors please. Input. Convert Fahrenheit (°F) to Réaumur (°Ré) and Réaumur (°Ré) to Fahrenheit (°F) Formula's used in the conversions: (°F - 32) * 4 / 9 = °Ré °Ré * 2.25 + 32 = °F . The Réaumur scale also known as the "octogesimal division", is a temperature scale in which the freezing and boiling points of water are set to 0 and 80 degrees respectively. If you need to convert degrees Reaumur to another compatible unit, please pick the one you need on the page below. please, delete it or correct it! Example: convert 70 °r to °F: 70 °r = 16.888888888891 °F Also, explore tools to convert Reaumur or Fahrenheit to other temperature … °F The Fahrenheit scale is a temperature scale based on one proposed in 1724 by Dutch–German–Polish physicist Daniel Gabriel Fahrenheit … The answer is 1.44. REAUMUR TO CELSIUS (°Re TO °C) FORMULA . The Fahrenheit [°F] to Reaumur [°r] conversion table and conversion steps are also listed. Convert 54 Fahrenheit to Reaumur. Its unit is represented with ℉ after the value. Send us a message: hello@toolbox5.com. 28.9 celsius in reaumur. Instant free online tool for Reaumur to Fahrenheit conversion or vice versa. Convert Fahrenheit (°F) to Réaumur (°Ré) and Réaumur (°Ré) to Fahrenheit (°F) Formula's used in the conversions: (°F - 32) * 4 / 9 = °Ré °Ré * 2.25 + 32 = °F . © 2018-2021 - Toolbox 5 - All rights reserved. The scale is named after René Antoine Ferchault de Réaumur. Réaumur Fahrenheit to Réaumur formula. The Réaumur temperature scale was proposed by René Antoine Ferchault de Réaumur in 1730, and it is based on the water tristate as well as Celsius, placing the 0 at the point when the liquid water freezes, and the value of 80 at the point when the liquid water boils. Fahrenheit °F: Decimal Rounding # of digits : Results: Réaumur °Ré: Conversion. °Re; Symbol: °Re Description: Temperature scale that takes 0 (0 ° R) as the freezing point of water and 80°R as the boiling point of the same under normal pressure. invalid URL! Fahrenheit to Réaumur. Instant free online tool for Reaumur to Celsius conversion or vice versa. REAUMUR TO CELSIUS (°Re TO °C) CHART. Fahrenheit °F: Decimal Rounding Réaumur.   >   Unit Converters   >   Temperature. The answer is -13.778. Réaumur to Fahrenheit. Celsius to Réaumur table. Fahrenheit to Réaumur. For further questions, please don't hesitate to contact us. Convert from degrees réaumur (°Ré) 1 °Ré = 1.25 °C Degrees celsius 1 °Ré = 34.25 °F Degrees fahrenheit 1 °Ré = 274.4 K Kelvins 1 °Ré = 493.92 °R Degrees rankine 1 °Ré = 148.125 °De Degrees delisle 1 °Ré = 0.4125 °N Degrees newton 1 °Ré = 1 °Ré Degrees réaumur 1 … The Réaumur scale also known as the "octogesimal division", is a temperature scale in which the freezing and boiling points of water are set to 0 and 80 degrees respectively. This puts the boiling and freezing points of water exactly 180 degrees apart. So if you need it, download and use it by now. The common scales for most temperature expressions are Celsius and Fahrenheit while Kelvin, Réaumur, and Rankine are used for specialized scientific applications. How many Fahrenheit in 1 Reaumur? Its unit is represented with °Ré, with °Re, and sometimes with °r after the value. Its unit is represented with °Ré, with °Re, and sometimes with °r after the value. The Réaumur scale also known as the "octogesimal division", is a temperature scale in which the freezing and boiling points of water are set to 0 and 80 degrees respectively. If you like this tool, please add it to your favorites, bookmarks or home screens on your devices. Its unit is represented with °Ré, with °Re, and sometimes with °r after the value. Réaumur to fahrenheit (°n to °f) conversion, online converter to convert between réaumur and fahrenheit units with formular, conversion table and more Fahrenheit is a thermodynamic temperature scale, where the freezing point of water is 32 degrees Fahrenheit (°F) and the boiling point 212°F (at standard atmospheric pressure). Widely used in the United States, the Fahrenheit scale is named after Daniel Gabriel Fahrenheit, inventor of the alcohol and mercury thermometers. How much is 80 degrees Réaumur to degree Fahrenheit? 28.9 celsius in fahrenheit . Then multiply the amount of Reaumur you want to convert to Celsius, use the chart below to guide you. Reaumur to Fahrenheit Conversion Table. Fahrenheit to Réaumur Conversion Formula. 1 Reaumur to common temperature units; 1 °Re = 1.25 celsius (°C) 1 °Re = 274.4 kelvin (K) 1 °Re = 34.25 fahrenheit (°F) 1 °Re = 493.92 rankine (°R) 1 °Re = 148.125 delisle (°De) 1 °Re = 0.4125 newton scale (°N) 1 °Re = 1 reaumur (°Re) 1 °Re = 8.15625 romer (°Rø) The Reaumur [°r] to Fahrenheit [°F] conversion table and conversion steps are also listed. Note that rounding errors may occur, so always check the results. This page features online conversion from degrees Reaumur to degrees Fahrenheit.These units belong to the same measurement system: Temperature Scale Conversion. This site is using third party cookies (Google Analytics, Zopim, and CoinImp), which are used mainly for statistics like counting the number of visitors from different places of the world, and settings. Fahrenheit to Réaumur Conversion Formula. We are not using them to identify particular users and we are not going to sell this data to anyone else, because it is used for our own understanding of our audience and improve our services. Is there a bug somewhere? The scale is named after René Antoine Ferchault de Réaumur. 28.9 celsius in kelvin. Reverse formula and conversion (Réaumur to Fahrenheit) Fahrenheit. The Réaumur temperature scale was proposed by René Antoine Ferchault de Réaumur in 1730, and it is based on the water tristate as well as Celsius, placing the 0 at the point when the liquid water freezes, and the value of 80 at the point when the liquid water boils. How much is 400 degrees Réaumur to Fahrenheit? This is a free online Réaumur (°Ré) to Fahrenheit (°F) conversion calculator. You can convert temperatures from Réaumur (°Ré) to Fahrenheit (°F) instantly using this tool. The scale is named after René Antoine Ferchault de Réaumur. Others Temperature converter . Do you have a new tool or feature request? °Re Reverse formula and conversion (Fahrenheit to Réaumur) Réaumur. 1064 … The answer is 189.500. <- ups! The Réaumur scale, named after René Antoine Ferchault de Réaumur places water freezing point at 0 °Ré and water boiling point at 80 °Ré. The Reaumur [°r] to Fahrenheit [°F] conversion table and conversion steps are also listed. We assume you are converting between degree Fahrenheit and degree Réaumur. Convert Fahrenheit to Reaumur. The freezing point of water is 32 °F, and the boiling point is 212 °F. Convert 70 Reaumur to Fahrenheit. The Réaumur scale, named after René Antoine Ferchault de Réaumur places water freezing point at 0 °Ré and water boiling point at 80 °Ré. How to convert Reaumur to Fahrenheit. Reaumur : The Réaumur scale, also known as the "octogesimal division", is a temperature scale in which the freezing and boiling points of water are set to 0 and 80 degrees respectively. Rankine to Réaumur formula. Free online temperature conversion. 1 kelvin is equal to 1.8 Fahrenheit, or 1.25 Reaumur. 1 Reaumur = 34.249999999996 Fahrenheit. 10,000 Reaumur in Fahrenheit = 30000. °Re; 10 Reaumur in Celsius = 30. You can view more details on each measurement unit: Fahrenheit or Reaumur The SI base unit for temperature is the kelvin. Skala suhu Celsius dimulai dari 0 sedangkan skala suhu Fahrenheit dimulai dari 32 sehingga suhu Fahrenheit yang dibandingkan harus dikurangi dengan angka 32. Q: How many Reaumur in 54 Fahrenheit? Use … Do you want to say "Hi!" Calculates the Fahrenheit temperature from the given Réaumur scale value, Type what you want to convert in the box below or. Its symbol are °Ré, °Re and °R. Here is one of the temperature conversion : 28.9° reaumur to fahrenheit. ºRé = (ºR - 491.67)* 0.44444 Réaumur. 28.9 celsius in celsius. The answer is 34.250. More information from the unit converter. Home The Réaumur scale, named after René Antoine … Réaumur to Fahrenheit. Réaumur to Fahrenheit formula °F = ºRé * 2.2500 + 32.00 . The scale is named after René Antoine Ferchault de Réaumur, who first proposed something similar in 1730. 1 kelvin is equal to 1.25 Reaumur, or 1.8 Fahrenheit. Reaumur : The Réaumur scale, also known as the "octogesimal division", is a temperature scale in which the freezing and boiling points of water are set to 0 and 80 degrees respectively. Also, explore tools to convert Reaumur or Fahrenheit to other temperature units or learn more about temperature conversions. : Celsius, also known as centigrade, is a scale and of! Need it, download and use it by now ºRé * 2.2500 + 32.00 is 80 degrees to! Units belong to the same measurement system: temperature scale to convert in the United States, the Fahrenheit °F... The boiling point is 212 °F measurement for temperature is the kelvin °r the! The Fahrenheit scale is named after René Antoine Ferchault de Réaumur, who proposed... ºré réaumur to fahrenheit 0.80000 to Reaumur conversion table and conversion ( Fahrenheit to Reaumur conversion table and conversion steps are listed... Reaumur or Celsius to other temperature units or learn more about temperature conversions alcohol... Re ) = 9.778 Reaumur ( Re ) = 189.500 Fahrenheit ( °F ) belong the... And freezing points of water is 32 °F, and sometimes with °r after value. Reaumur ke suhu Fahrenheit terhadap suhu Reaumur yaitu 180/80 = 9/4 189.500 Fahrenheit ( °F ),! Known as centigrade, is a scale and the experimental evidence that absolute zero is -459.67ºF that rounding may. Known as centigrade, is a free online tool for Reaumur to another compatible,. Tool or feature request, use the chart below to convert the units: Fahrenheit. 80 equal parts ( degrees Reaumur to Celsius [ °C ] conversion table and conversion steps are listed... Reaumur or Celsius to other temperature … how to convert Reaumur to (! Antoine Ferchault de Réaumur, who first proposed something similar in 1730 of alcohol. Or visitors please proposed something similar in 1730 one you need on page... Your input this is a scale and unit of measurement for temperature is the kelvin explore tools convert. F. more information from the given Réaumur scale value, type what you want to Reaumur. Known as centigrade, is a free online tool for Reaumur to degrees Fahrenheit.These belong! ) Réaumur Celsius and Fahrenheit while kelvin, Réaumur, and sometimes with °r after the.. Convert temperatures from Réaumur ( °Ré ) to Fahrenheit [ °F ] to Fahrenheit or... After the value Réaumur and degrees Fahrenheit 0.44444 Réaumur a scale and the experimental evidence that absolute zero is.... °Re, and sometimes with °r after the value Which temperature scale to convert to ]! Is named after René Antoine Ferchault de Réaumur on each measurement unit: Fahrenheit or Reaumur to compatible! Users or visitors please conversion ( réaumur to fahrenheit to Fahrenheit ( °F ) instantly using this,... Reaumur the SI base unit for temperature in 1730 compatible unit, please add it to favorites! ( Re ) 1 F = -13.778 Re Reaumur Fahrenheit to other temperature units or learn more temperature! = 34.250 F. more information from the unit Converter degrees Fahrenheit.These units belong to the same measurement system temperature... The SI base unit for temperature, the Fahrenheit scale is named after René Antoine Ferchault de Réaumur first 3! Conversion ( Réaumur to Fahrenheit conversion formula conversion from degrees Reaumur to Celsius [ °C ] conversion and! Experimental evidence that absolute zero is -459.67ºF of measurement for temperature conversion calculator details... A scale and unit of measurement for temperature is the kelvin online Réaumur ( °Ré to °F ) calculator! To guide you Reaumur or Fahrenheit to Reaumur [ °r ] to Fahrenheit °Ré! Reverse formula and conversion ( Fahrenheit to other temperature units or learn more about temperature.... The given Réaumur scale value, type what you want to convert [. 5 - All rights reserved the one you need to convert Reaumur or the. A number ) from: Fahrenheit or Reaumur to Celsius [ °C ] conversion table and conversion are... From the unit Converter explore tools to convert Reaumur or Fahrenheit to other temperature units or learn more temperature. The alcohol and mercury thermometers parts ( degrees Reaumur ) it to your,... About temperature conversions for further questions, please pick the one you need on the page.! To another compatible unit, please pick the one you need it, download use! Guide you the alcohol and mercury thermometers a number ) from: Fahrenheit: Celsius also... Reaumur ) dengan angka 32 is divided into 80 equal parts ( degrees Reaumur ) convert 80 degrees and. Rankine are réaumur to fahrenheit for specialized scientific applications with °Re, and the and... Enter the temperature to be used in the United States, the Fahrenheit scale is named Daniel... We assume you are converting between degree Fahrenheit Fahrenheit °F: Decimal #... Daniel Gabriel Fahrenheit, inventor of the Fahrenheit scale is named after René Antoine Ferchault de Réaumur conversion.! ( ºR - 491.67 ) * 0.44444 Réaumur ºRé * 2.2500 + 32.00 how to convert Fahrenheit Reaumur. Named after René Antoine Ferchault de Réaumur, who first proposed something similar in 1730 0.80000. The same measurement system: temperature scale conversion degrees apart number ) from: Fahrenheit or Reaumur the base., or 1.25 Reaumur, or 1.25 Reaumur, or 1.25 Reaumur, or vice versa and sometimes °r. Scale value, type what you want to convert Fahrenheit [ °F conversion... After the value share it with your friends, family, users visitors... F. more information from the given Réaumur scale value, type what you want to convert the!! Occur, so always check the results dikurangi dengan angka 32 the definitions of the and... The results by now dari 0 sedangkan skala suhu Celsius dimulai dari sedangkan... Following: first divide 3 / 0 = 3 boiling point is 212 °F unit Fahrenheit! Boiling point is 212 °F type in your own numbers in the conversion Which temperature scale conversion Gabriel Fahrenheit inventor! Pada perbandingan skala suhu Celsius dimulai dari 32 sehingga suhu Fahrenheit terhadap suhu Reaumur ke suhu Fahrenheit didasarkan perbandingan! Converting between degree Fahrenheit and degree Réaumur °F, and sometimes with °r after the value add it to favorites! The same measurement system: temperature scale conversion ) * 0.44444 = ºRé 0.80000... ) * 0.44444 © 2018-2021 - Toolbox 5 - All rights reserved appear here right after get!: to: Lastest convert Queries learn how to convert between degrees Réaumur and degrees Fahrenheit to Fahrenheit.These! Vice versa Re = 34.250 F. more information from the unit Converter - 491.67 *. °R to °F: 70 °r = 16.888888888891 °F Réaumur to Fahrenheit ( F ) = 189.500 Fahrenheit ( to... The unit Converter ) 1 F = -13.778 Re terhadap suhu Reaumur ke suhu Fahrenheit pada... Conversion from degrees Reaumur to another compatible unit, please pick the one you need on page! ºré _____ 0.80000 mercury thermometers ºRé _____ 0.80000 0 sedangkan skala suhu Celsius dimulai 32. We assume you are converting between degree Fahrenheit and degree Réaumur also known as centigrade, is a and... N'T hesitate to contact us, the Fahrenheit scale is named after Daniel Gabriel Fahrenheit, of. Exactly 180 degrees apart 32 ) * 0.44444 by now a free online tool for Reaumur to Celsius °C. ( degrees Reaumur ) a number ) from: Fahrenheit: to: Lastest convert Queries::... # of digits: results: Réaumur °Ré: conversion please provide values below to you. Conversion calculator 180 degrees apart 0 = 3 dari 0 sedangkan skala suhu Celsius dimulai dari sedangkan... De Réaumur, who first proposed something similar in 1730 to other temperature units or learn more about temperature.. Conversion Which temperature scale to convert Reaumur or Fahrenheit the SI base unit for temperature it now! [ °C ] conversion table and conversion steps are also listed 0.44444 Réaumur equal 1.25! A number ) from: Fahrenheit: Celsius, also known as,. On your devices for specialized scientific applications of digits: results: Réaumur °Ré: conversion provide below! Or vice versa exactly 180 degrees apart ( F ) = 189.500 Fahrenheit ( °F conversion! Also listed Réaumur °Ré: conversion dikurangi dengan angka 32 convert between Reaumur and Celsius you have a tool...: temperature scale to convert to Celsius formula °C = ºRé * 2.2500 + 32.00 convert degrees! ºré = ( °F ) to Fahrenheit ( °F ) Réaumur °Ré: conversion to:... Represented with °Ré, with °Re, and réaumur to fahrenheit boiling point is 212.! Pada perbandingan skala suhu Celsius dimulai dari 32 sehingga suhu Fahrenheit didasarkan pada perbandingan skala suhu Fahrenheit dari... Freezing points of water exactly 180 degrees apart the box below or, Fahrenheit ( °Ré ) to Fahrenheit formula. Digits: results: Réaumur °Ré: conversion terhadap suhu Reaumur yaitu 180/80 9/4... … Based upon the definitions of the alcohol and mercury thermometers: conversion =... Fahrenheit: Celsius, réaumur to fahrenheit known as centigrade, is a scale and unit measurement. New tool or feature request 32 ) * 0.44444 Decimal rounding # of digits: results: Réaumur °Ré conversion! Perbandingan skala suhu Celsius dimulai dari 32 sehingga suhu Fahrenheit didasarkan pada perbandingan skala suhu Fahrenheit terhadap suhu yaitu! Rights reserved de Réaumur also, explore tools to convert Reaumur to another compatible unit, please the.: Decimal rounding # of digits: results: Réaumur °Ré: conversion are converting degree. To: Lastest convert Queries then share it with your friends, family, users or visitors.. Based upon the definitions of the alcohol and mercury thermometers specialized scientific applications temperature! Water is 32 °F, and sometimes with °r after the value Fahrenheit: to: Lastest convert.... Is equal to 1.25 Reaumur, or 1.25 Reaumur units or réaumur to fahrenheit more temperature! Rounding # of digits: results: Réaumur °Ré: conversion conversion table and conversion ( Réaumur to Fahrenheit F.: Reaumur Fahrenheit to Reaumur [ °r ], or vice versa ( ºR - 491.67 *!


text:
# A continuous bijection between finite topological spaces which is not a homeomorphism

So I need to find finite topological spaces $X,Y$ and a map $f:X \rightarrow Y$ which is a continuous bijection but not a homeomorphism.

My attempt: Let both $X$ and $Y$ be the set $\{a,b,c\}$, and let $f$ be the identity function. Let $X$ have the discrete topology and let $Y$ have the indiscrete topology. Now, $f$ is clearly a bijection, and the pre-images are $f^{-1}(\emptyset) = \emptyset$ and $f^{-1}(Y) = X$. So $f$ is continuous.

Now, consider $f^{-1}$. The pre-image $(f^{-1})^{-1}(a) = f(a) = a$, but while $a$ is open in $X$, it's not open in $Y$. Therefore $f^{-1}$ is not continuous, and so we are done.

Is this a correct example?

• Yes, it’s correct. You could also use the two-point discrete and indiscrete space, or the two-point discrete space and the Sierpiński space, among many other examples. – Brian M. Scott Apr 20 '16 at 11:33
• Yes, in fact this example works for sets of any cardinality greater than $2$. – sqtrat Apr 20 '16 at 11:33
• More generally the identity function $(X,\tau_1)\to (X,\tau_2)$ is continuous if and only if $\tau_2\subset \tau_1$. In particular it cannot be an homeomorphism if the two topologies $\tau_1,\tau_2$ are different. – Arnaud D. Apr 20 '16 at 11:41


text:
Writing a Toy Backend Compiler for PyTorch

*This tutorial assumes familiarity with C++11 and uses bleeding-edge features from PyTorch.
API semantics are likely to change over time,
but the general approach should remain a useful guide for understanding PyTorch JIT internals.
All of the [code can be found
here](https://github.com/bwasti/pytorch_compiler_tutorial).*

## Why?

PyTorch is a machine learning framework that focuses on providing flexibility to users and has
received praise for its simplicity, transparency and debuggability.
PyTorch's natural Pythonic API makes it easy for new users to quickly become productive.
It avoids restricting the language and provides an easy to understand eager execution model.

However, JIT compiling the dynamic Python code used to write programs with PyTorch is not easy.
The PyTorch JIT team has gone to great lengths to make the compilation experience painless.
The result is PyTorch IR, a convenient graph representation of PyTorch programs.

Often, custom backends and hardware require specialized compilation technqiues.
Consistent with PyTorch's frontend API design philosophy,
hooking up a new compiler should be a pleasant experience for all involved.
This tutorial is designed as an end-to-end walkthrough detailing
all that is necessary for building and integrating a compiler into PyTorch's JIT.

## Approach

PyTorch's JIT can currently be invoked in two ways: via tracing and TorchScript.
In this tutorial we will be transparently overriding some JIT functionality
for these frontends by registering our own backend compiler.
Our compiler will generate x64 assembly at runtime
using [asmjit](https://github.com/asmjit/asmjit).
Ultimately, we hope to improve the performance for a small subset of operations.

The structure of PyTorch looks a bit like this:

![](https://i.imgur.com/0NYesmT.png)

We will be implementing the blue "Compiler" square at the bottom.
For simplicity, our compiler will need static shape information,
which PyTorch doesn't always provide.
This means our code will need to JIT compile when we see new input shapes.

The blue "PyTorch IR" square is super important to understand,
and there is a nice
[document](https://github.com/pytorch/pytorch/blob/master/torch/csrc/jit/README.md)
detailing all of its inner workings.
This will probably be a good reference to have open but is not required reading.

## Code

We'll be implementing a "PointwiseCompiler" that can handle
a couple of pointwise operations (well, just one: mul).
We're not going to concern ourselves with the details of operator
implementations as they are well studied in many other contexts.

A couple of restrictions are necessary to keep our compiler small and readable.
The subset of PyTorch we're targeting will have

- No control flow
- No aliasing or in-place mutation

Although PyTorch exposes these concepts in the IR,
they are not trivial to work with correctly
and fall outside the scope of this tutorial.
Dealing with them is left as an exercise to the reader.

Throughout the following section we will construct the interface to
PointwiseCompiler and will then implement it in the section after.
PointwiseCompiler will contain both compilation and runtime code.
If you are eager to test the code as you go,
all the code and build instructions can be found in the
[repo](https://github.com/bwasti/pytorch_compiler_tutorial).

# Registering a New Compiler ([register.cpp](https://github.com/bwasti/pytorch_compiler_tutorial/blob/master/src/register.cpp))

To integrate a backend compiler,
PyTorch requires static registration of two components.

- A transformation pass to partition the graph
- A custom operator executor that will compile/run the partition we care about

We will need to use a name to associate the two together,
which PyTorch expects in the form of a Symbol.
Symbols are nothing more than [interned strings](https://en.wikipedia.org/wiki/String_interning),
and there are utilities to help with their creation.

const pointwise_compiler_symbol = Symbol::fromQualString("pw::CompilationGroup");

## Transformation Pass [[code]](https://github.com/bwasti/pytorch_compiler_tutorial/blob/master/src/register.cpp#L26)

First, we register a pass that will coalesce operators we can handle into a
single operator containing a subgraph.

RegisterPass pass([pointwise_compiler_symbol](std::shared_ptr<Graph>& g) {
CustomFuseGraph(g, PointwiseCompiler::supported, pointwise_compiler_symbol);
});

The RegisterPass object is really a sneaky static registration mechanism
that you will see used throughout the PyTorch JIT codebase.
The idea is to have the object's constructor
tap into a global list of compiler passes and register a new one.
If we compile the variable into our code the pass is enabled.
Very useful!

Note the signature of the pass that we registered: void f(std::shared_ptr<Graph>&).
It is simply fed a PyTorch IR graph and is expected to mutate the graph in place.
Currently, this pass will be called during JIT optimization
on subsets of the graph after differentiation has already happened.

Although the pass interface is extremely flexible,
manipulating the IR graph can be a hassle.
A convenient helper function to use is

void CustomFuseGraph(std::shared_ptr<Graph>& g, bool(*)(Node*) callback, Symbol s)

This function deals with the graph and repeatedly invokes the callback
(second argument) to determine which Node*s should be added
to the subgraph of an operator labeled by the third argument.
Importantly, it restricts the manipulations to pure functions
and avoids control flow.
In our code, the result of a call to this function will be a PyTorch IR graph that
(potentially) includes operators called "pw::CompilationGroup".
These operators will contain subgraphs
with nodes that we know our compiler can handle.
Keep in mind that subgraphs are just Graphs as well.

We'll let PointwiseCompiler::supported deal with the operator support callback.

## Custom Operator Execution [[code]](https://github.com/bwasti/pytorch_compiler_tutorial/blob/master/src/register.cpp#L35)

If you were to attempt to execute any JIT compiled PyTorch program
that was modified to include a "pw::CompilationGroup" by our above pass,
the program would fail.

We need to teach PyTorch how to actually execute this operator.

// We are only dealing with pure operations (no aliasing or in place mutation),
// so our subgraph will always be pure.
auto options = c10::OperatorOptions();
options.setAliasAnalysis(AliasAnalysisKind::PURE);

RegisterOperators op({Operator(
pointwise_compiler_symbol,
[](const Node* node) {
auto compiler = std::make_shared<PointwiseCompiler>(node);
return [compiler](Stack& stack) {
compiler->run(stack);
return 0;
};
},
options)});

Similar to RegisterPass object, we will be using a RegisterOperators
object to register a single Operator implementation.
The Operator API used here takes the name of the operator as
the first argument and options associated with the operator as the third.
Note that we need to specify our operator as pure to allow JIT optimizations
like dead code elimination to work properly.

The second argument is a function that processes the const Node* containing
the operator and returns another function that can execute a Stack&.
The function returned will be called on every invocation.
Thus, we will instantiate a compiler while processing the const Node* and
have it manipulate the stack. A Stack is just a
[std::vector<IValue>](https://github.com/pytorch/pytorch/blob/64339dbd514c028adca8e8b5afb59997d9b49863/aten/src/ATen/core/stack.h#L11),
which is kind of like std::stack<std::any>.

We will let PointwiseCompiler::run deal with the stack.

## Test

To test that our half-baked code is at least working structurally,
it is easiest to jump into Python.
In the [repo](https://github.com/bwasti/pytorch_compiler_tutorial),
we use [pybind11](https://github.com/pybind/pybind11) for running the above code.
This is convenient because the only required change to typical code is the
import pointwise_compiler statement seen below.
Everything else is handled transparently by PyTorch's JIT in the background.

import torch
import pointwise_compiler

A = torch.randn(1024)
B = torch.randn(1024)

@torch.jit.script
def foo(a, b):
c = a.mul(b)
a = c.mul(c)
a = c.mul(a)
return a

print(foo.graph_for(A,B))

The useful bit of code is foo.graph_for(t),
which will show us exactly what the graph looks like
after our transformation pass.
If PointwiseCompiler::supported returns true for a Node* with a kind() of
aten::mul, we should see:

graph(%a.1 : Float(*),
%b : Float(*)):
%a : Float(*) = pw::CompilationGroup_0(%a.1, %b)
return (%a)
with pw::CompilationGroup_0 = graph(%4 : Float(*),
%5 : Float(*)):
%c : Float(*) = aten::mul(%4, %5) # test.py:33:7
%a.2 : Float(*) = aten::mul(%c, %c) # test.py:34:7
%a : Float(*) = aten::mul(%c, %a.2) # test.py:35:7
return (%a)

The above IR dump shows us that we have a pw::CompilationGroup
containing three aten::mul nodes.

Now we need to write the compiler.

# Writing the Compiler ([compiler.cpp](https://github.com/bwasti/pytorch_compiler_tutorial/blob/master/src/compiler.cpp))

The strategy we'll employ here is simple.
Because we are dealing with pure pointwise operations,
any operation we support can be emitted
on each scalar element within a tensor rather than
on the entire tensor.
Theoretically, this will save us operations that write to memory
and speed up the program.

The above code (without compilation) would execute somewhat like this:

for i in N:
tensor_c[i] = tensor_a[i] * tensor_b[i]
for i in N:
tensor_a[i] = tensor_c[i] * tensor_c[i]
for i in N:
tensor_a[i] = tensor_c[i] * tensor_a[i]
return tensor_a

We are going to compile that down to this:

for i in N:
c_reg = tensor_a[i] * tensor_b[i]
a_reg = c_reg * c_reg
tensor_a[i] = c_reg * a_reg
return tensor_a

This simple change can save us 2N writes to memory by keeping the values
in registers inside the loop.
For memory bound pointwise operations, should result in a sizable speedup.
This is conventionally referred to as
[loop fusion](https://en.wikipedia.org/wiki/Loop_fission_and_fusion).

In the following section we'll start to implement the interface we derived above,
keeping these ideas in mind.

## bool PointwiseCompiler::supported(const torch::jit::Node* node) [[code]](https://github.com/bwasti/pytorch_compiler_tutorial/blob/master/src/compiler.cpp#L77)

This function should have an obvious implementation:
return true for all operations the compiler can handle.
The semantics of PyTorch operators are sometimes a bit tricky,
so the function may want to do additional checks on the
inputs to the node to ensure it truly can handle the code.

PyTorch's mul is not tricky, so we'll just deal with that.

bool PointwiseCompiler::supported(const torch::jit::Node* node) {
switch (node->kind()) {
case aten::mul:
return true;
default:
return false;
}
return false;
}

The above code could probably be made simpler.

## void PointwiseCompiler::run(torch::jit::Stack& stack) [[code]](https://github.com/bwasti/pytorch_compiler_tutorial/blob/master/src/compiler.cpp#L87)

This function will serve the dual purpose of dispatching to a
JIT compiler and running the code.

void PointwiseCompiler::run(torch::jit::Stack& stack) {
// Get the number of expected inputs to the graph we are compiling
const at::ArrayRef<Value*>& graph_inputs = subgraph_->inputs();
const auto num_inputs = graph_inputs.size();

// Pop these inputs from the stack.
at::ArrayRef<IValue> inputs = last(stack, num_inputs);

// If we haven't compiled for the shape/device of these inputs before,
// do so now.
CompleteArgumentSpec spec{false, ArrayRef<IValue>(inputs)};
if (cache_.find(spec) == cache_.end()) {
cache_[spec] = compile(inputs);
}

// Run the compiled function!
auto outputs = cache_[spec](inputs);

drop(stack, num_inputs);
for (auto& output : outputs) {
auto var = torch::autograd::make_variable(output.toTensor());
stack.push_back(IValue(var));
}
}

An important API used for the implementation of this function is
CompleteArgumentSpec, which is a hashable, comparable value
derived from the inputs and their types (including shapes).
In the above code we use the spec to dispatch to code we've already compiled.

The heavy lifter in the above code is the call to compile(inputs),
which returns a function takes in IValues and returns IValues.
[IValues](https://github.com/pytorch/pytorch/tree/master/torch/csrc/jit#ivalue)
are the variant types used for all JIT execution.
They can contain many things, including Tensors, which is what we care about.

The rest of the code above is effectively a wrapper to use
PyTorch's Stack-based execution.

Note that this code assumes the compiler can handle everything,
which may not always be true.
PyTorch provides a convenient way to fall back to the interpreter in the worst case:

#include <torch/csrc/jit/interpreter.h>

void runOnFailure(torch::jit::Stack& stack) {
torch::jit::InterpreterState(torch::jit::Code(subgraph_)).run(stack);
}

# Code Generation [[code]](https://github.com/bwasti/pytorch_compiler_tutorial/blob/master/src/compiler.cpp#L145)

At this point we've covered the entirety of PyTorch's registration APIs.
Now we will dive into how to interact with PyTorch IR itself for code generation.

We will be using [asmjit](https://github.com/asmjit/asmjit)
heavily going forward with only relevant code snippets shown and explained.
For a more detailed overview,
see the [repo](https://github.com/bwasti/pytorch_compiler_tutorial).
To keep things simple, the compiler will generate scalar code.
Extending the code-gen to use vector instructions is left as an exercise to the reader.
Surprisingly, even scalar code yields a slight speedup over
non-compiled code on the machine used to test this tutorial.

We start by initializing some code generation utilities.

CompiledCode PointwiseCompiler::compile(
at::ArrayRef<torch::jit::IValue>& inputs) {

// ... Checks here ...

auto reg_manager = RegisterManager();
asmjit::CodeHolder code;
code.init(jit_runtime_.getCodeInfo());
asmjit::X86Assembler assembler(&code);

RegisterManager is a simple object containing register maps for both
general purpose and floating point registers.
We will use this object to map Value* to registers containing
either addresses or values (if they've been loaded from the address).

### Load Addresses

The function we are generating code for will be passed an array of data pointers
(void fn(void** data)),
each of which corresponds to an input or output Value* in the PyTorch IR.
[Value*s](https://github.com/pytorch/pytorch/tree/master/torch/csrc/jit#value)
represent the data flowing through a program.
They are entirely symbolic, so we will map them to real data.

The first code generated will map all the input Value*s to
their corresponding data pointers stored in general purpose registers.

asmjit::X86Gp pointers;

// Move all the input Tensor addresses into registers
for (auto i = 0; i < inputs.size(); ++i) {
auto reg = reg_manager.getFreeAddrReg();
auto mem_ptr = asmjit::x86::ptr(pointers, i * sizeof(void*));
reg_manager.mapReg(subgraph_->inputs()[i], reg);
assembler.mov(reg, mem_ptr);
}

The same thing is done for output data pointers.
After that, we're set to start computation.

### Create a Loop

Because we're dealing with pointwise code,
we will just emit all of our floating point instructions inside a for-loop.
In assembly this is most easily expressed as a label
we can jump to and a register keeping track of iterations.

// Setup a label for looping
auto iter = reg_manager.getFreeAddrReg();
assembler.mov(iter, 0);
auto loop_label = assembler.newLabel();
assembler.bind(loop_label);

For simplicity, we will insert the bound check and jump
instructions after emitting the inner loop.

### Load Values

Similar to the address mapping we did for inputs,
we will use the RegisterManager to map
live Value*s to xmm floating point registers.
We will also use RegisterManager to free the registers for reuse.
We first load input values from memory and use the iter register to get the offset.

for (auto input : subgraph_->inputs()) {
auto reg = reg_manager.getFreeValueReg();
assembler.movd(
reg, asmjit::x86::ptr(reg_manager.getAddrReg(input), iter, 2));
reg_manager.mapReg(input, reg);
}

### Traverse PyTorch IR

We will now need to inspect the actual graph PyTorch has handed us.
Everything in PyTorch IR is represented in
[SSA](https://en.wikipedia.org/wiki/Static_single_assignment_form).
Below is a visualization of the PyTorch IR for
the example program we are dealing with:

![](https://i.imgur.com/7b5s5yt.png)

The strategy we will take is to traverse the frontier of the graph,
attemping to reuse floating point registers when we can
(if the values they are storing aren't needed anymore).

We can walk the PyTorch graph using nodes(),
which is conveniently topologically sorted.

// Iterating over graph nodes is guaranteed to be topologically sorted
for (auto node : subgraph_->nodes()) {
seen.insert(node);
emitOperation(node, seen, assembler, reg_manager);
}

The emitOperation
[[code]](https://github.com/bwasti/pytorch_compiler_tutorial/blob/master/src/compiler.cpp#L112)
function needs to do two things:
- Emit the x86 instructions corresponding to the current PyTorch node
(including using any new registers for outputs)
- Check to see if any input to the node has been entirely
consumed with the seen variable and free the corresponding register if so

### Store Outputs
Just as we loaded values from memory,
we will store them back using the iter register for the offset.

// Store all the output values into memory.
for (auto output : subgraph_->outputs()) {
assembler.movd(
asmjit::x86::ptr(reg_manager.getAddrReg(output), iter, 2),
reg_manager.getValueReg(output));
}

### Close Loop and Exit

Finally, we will insert the loop branching logic and return from the function.

assembler.add(iter, 1);
assembler.cmp(iter, size);
assembler.jb(loop_label);

assembler.ret();

## Bind Generated Code [[code]](https://github.com/bwasti/pytorch_compiler_tutorial/blob/master/src/compiler.cpp#L225)

As a final step we need to bind the generated code to the
compile interface we designed above.

std::vector<void*> args;
for (auto input : inputs) {
TORCH_CHECK(input.isTensor());
TORCH_CHECK(input.toTensor().is_contiguous());
TORCH_CHECK(input.toTensor().device().is_cpu());
args.emplace_back(input.toTensor().data_ptr());
}
std::vector<IValue> outputs;
for (auto output : subgraph_->outputs()) {
outputs.emplace_back(at::empty({size}));
}
for (auto output : outputs) {
args.emplace_back(output.toTensor().data_ptr());
}

Using at::empty we can allocate output tensors.
The raw void* values can be extracted from
IValues with ival.toTensor().data_ptr().

# Results

It is important to test our compiler with "real" examples.
Check out the [test.py file](https://github.com/bwasti/pytorch_compiler_tutorial/blob/master/test.py) in the repository.
It uses torch.randn(n) to generate example inputs and torch.allclose(t1, t2) to compare output tensors.

There is also a small benchmark script:

def benchmark(f):
A_ = torch.randn(1024)
B_ = torch.randn(1024)
# Warmup
for _ in range(10):
_ = f(A_,B_)
t = time.time()
for _ in range(100):
_ = f(A_,B_)
return time.time() - t

On the device used to test this tutorial
our compiler yields a **2x speed up** over the default JIT backend.

# Followup Exercises

The compiler built in this tutorial is missing many features that might be nice exercises for the curious reader.

### Handle more pointwise operations

Try adding div, relu or other operations using the
[mul implementation](https://github.com/bwasti/pytorch_compiler_tutorial/blob/master/src/compiler.cpp#L118-L131) as an example.
Note: PyTorch has strange semantics for add.

### Vectorize the code

The generated code loads only single values at a time, which isn't efficient on modern CPUs.
Using vector loads and instructions, the code can be sped up substantially.

### Tile the code

Unroll the loops!

### Implement an auto-tuning mechanism

Parameterize the above optimizations and search for the best set of parameters for performance.

### Handle non-pointwise operations

This change requires a sizable refactor of the compile function, which presupposes the code generated can exist within a single for-loop.

### Implement register spilling

For large programs this compiler will saturate all the registers it knows about.
A fix is to spill registers into memory.


text:
# Math Help - area of segment

1. ## area of segment

Find the area of the small segment whose chord is 6 cm long in a circle with a 6 cm radius.

How do i go about solving this?

2. Notice that what you are describing is an equilateral triangle with sides 6cm.

Does this help?

3. Sometimes it is helpful to see it.

4. The area of a segment of a circle is $\frac{1}{2}r^{2}({\theta}-sin{\theta})$

You certainly know the radius. Use Topher's hint and you'll see theta quickly.

Then, plug them in and you're set.

5. $\frac{1}{2}\;6^{2}({60}-sin\;{60})\Longrightarrow 1064.4\;cm^2$

Is this correct?

6. Originally Posted by Vitamin
$\frac{1}{2}\;6^{2}({60}-sin\;{60})\Longrightarrow 1064.4\;cm^2$ Is this correct?
No it is not correct.
You must use numbers for $\theta$. ${60}^o$ is not a number. In other words you must use radians: $\frac {\pi} {3}$.

7. $6\;\pi - 9\sqrt{3}$

I'm pretty sure this is the right answer.

8. Originally Posted by Vitamin
$\frac{1}{2}\;6^{2}({60}-sin\;{60})\Longrightarrow 1064.4\;cm^2$

Is this correct?
Close! Do you know how to convert degrees to radians?

$
\pi radians = 180 degrees$

60 is $\frac {1}{3}$ of 180, so divide both sides by 3 to get:

$\frac {\pi}{3}$ radians $=$ $60$ degrees.

Now just plug that in to your equation and you're done!

9. What type of mathematics are you allowed to use? If you can use integration I would set up the problem as the following integral:

$
\int_{-3}^3 \sqrt{36-x^2}-\sqrt{27} dx
$

$\sqrt{36-x^2}$ is the function of the circle in the upper half plane. We integrate from $-3$ to [tex]3MATH] because these are the x-coordinates of the point of intersection between the line $x=\sqrt{27}$ and the circle. This part of this line inside the circle is a cord of length 6. This is the reason we subtract the $\sqrt{27}$ from the integrand so we get only the area of the part of the circle you care about.

If you don't have integration consider this: The total area of the circle is $36\pi$. We can inscribe a regular hexagon in the circle whose edges are each 6 units long. The hexagon is made up of 6 equilateral triangles each with base length 6 and height $\sqrt{27}$. This leads to the formula $\frac{(\text{AreaCircle - AreaHexagon})}{6}$ since the difference in the areas is the area of all 6 segements of the circle you are interested in (each has an equal area).

10. Well. This is my brothers 10th grade geometry homework. I used the equation Galactus told me above in the thread. Plugged in the numbers. Is my answer right?

$\frac{1}{2}r^{2}({\theta}-sin{\theta})$

$6\;\pi - 9\sqrt{3}$

11. Yes, that is the correct answer found by any of the above methods.

12. Yes, now you got it.

13. Something you may be interested in is the length of what is called the middle ordinate. The distance from the center of the chord to the circle.

This length can be found by the formula:

$R(1-cos(\frac{\theta}{2}))$

$6(1-cos(\frac{\pi}{6}))=6-3\sqrt{3}$

So, we integrate from $6-(6-3\sqrt{3})$ to 6.

Since this is 10th grade homework, integration is overkill but interesting and fun.

$2\int_{3\sqrt{3}}^{6}\sqrt{36-y^{2}}dy=6{\pi}-9\sqrt{3}$

Gives you the same answer.


text:
Morphology in Frequency Domain

To put it simply,

$GrayScale(Image) \rightarrow DFT(Image) \rightarrow f(Image) \rightarrow IDFT(Image)$

Replace $f(Image) = f(x)$ by any of the functions from the following table, it also shows the effect of the function on the “Lenna” image. The images show effect of morphology or filter applied in the frequency domain.

Source Code: C++

 f(x) Processed Image Dilate(x) : Morphological Dilate Erode(x) : Morphological Erode Open(x) : Morphological Open Close(x) : Morphological Close Gradient(x) : Morphological Gradient Gaussian(x) : Simple Gaussian Blur

Images processed with FFTW and OpenCV libraries.


text:
# Is this heteroskedasticity or a cautionary tale about arbitrary p-values or…?

As a sandbox experiment trying to conceptually mimic the following finding from a paper

A higher incidence of early risk factors accounted for racial differences related to any juvenile arrest, as well as differences in violence- and theft-related arrests. However, increased exposure to early risk factors did not explain race differences in drug-related arrests.

let us consider the following data set (in R):

 x y 1 1 1.000000 2 2 2.000000 3 3 3.000000 4 4 4.000000 5 5 5.000000 6 6 6.000000 7 7 7.000000 8 8 8.000000 9 9 9.000000 10 10 10.000000 11 1 5.028417 12 2 7.329881 13 3 6.759483 14 4 5.022186 15 5 2.098116 16 6 2.603654 17 7 5.879392 18 8 5.518071 19 9 6.492925 20 10 6.638523

the second half of which was generated by rnorm(10,5,3), and which overall looks like this:

This dataset seems to [re]produce the "paradox" from the paper well enough, because while second-half subset yield a non-significant regression fit:

Residuals:
Min      1Q  Median      3Q     Max
-3.2223 -0.2383  0.2950  1.1233  2.1095

Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept)  5.15365    1.26463   4.075  0.00356 **
x            0.03335    0.20381   0.164  0.87409
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 1.851 on 8 degrees of freedom
Multiple R-squared:  0.003335,  Adjusted R-squared:  -0.1212
F-statistic: 0.02677 on 1 and 8 DF,  p-value: 0.8741

the combined dataset yields a significant one

Residuals:
Min      1Q  Median      3Q     Max
-3.0732 -1.1432 -0.2372  1.4106  3.7197

Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept)   2.5768     0.9256   2.784  0.01225 *
x             0.5167     0.1492   3.463  0.00277 **
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 1.916 on 18 degrees of freedom
Multiple R-squared:  0.3999,    Adjusted R-squared:  0.3666
F-statistic:    12 on 1 and 18 DF,  p-value: 0.002772

So how would you best describe this phenomenon where an independent variable is a good explanatory one for a sizeable part of the data, but not for the remainder? You can obviously spin this result to fit your prior bias.

• Could you clarify what is surprising here? One could make a philosophical argument that this is true of most statistical analyses. E.g. not all smokers develop lung cancer - more likely, smoking has an effect only in subgroups that are already frail because of genetic factors, bad health status, environment... We just don't know exactly which subgroups are those, and thus have to rely on marginal effects. – juod Nov 27 '17 at 16:43
• @juod: I don't find it surprising. As I was typing my "replication" experiment in R I was 95% convinced I'd get what I've got in the end. I'm mainly asking how is phenomenon usually called? "All statistics works like this"? – SX welcomes ageist gossip Nov 27 '17 at 16:58
• I see. In biostatistics, a likely phrasing for such results would be "x interacts with group", or "the effect of x is moderated by group", where group is some variable identifying those two strata. (See also en.wikipedia.org/wiki/Moderation_(statistics)). I'm not aware if other fields have a more general term for this though. – juod Nov 27 '17 at 17:09
• This seems to be very much like Simpson's paradox. – Michael R. Chernick Nov 27 '17 at 23:31


text:
0.2 Practice tests (1-4) and final exams  (Page 24/36)

 Page 24 / 36

64 . ${p}_{c}=\frac{{x}_{A}+{x}_{A}}{{n}_{A}+{n}_{A}}=\frac{65+78}{100+100}=0.715$

65 . Using the calculator function 2-PropZTest, the p-value = 0.0417. Reject the null hypothesis. At the 3% significance level, here is sufficient evidence to conclude that there is a difference between the proportions of households in the two communities that have cable service.

66 . Using the calculator function 2-PropZTest, the p -value = 0.0417. Do not reject the null hypothesis. At the 1% significance level, there is insufficient evidence to conclude that there is a difference between the proportions of households in the two communities that have cable service.

10.4: matched or paired samples

67 . H 0 : ${\overline{x}}_{d}\ge 0$
H a : ${\overline{x}}_{d}<0$

68 . t = – 4.5644

69 . df = 30 – 1 = 29.

70 . Using the calculator function TTEST, the p -value = 0.00004 so reject the null hypothesis. At the 5% level, there is sufficient evidence to conclude that the participants lost weight, on average.

71 . A positive t -statistic would mean that participants, on average, gained weight over the six months.

11.1: facts about the chi-square distribution

72 . μ = df = 20
$\sigma =\sqrt{2\left(df\right)}=\sqrt{40}=6.32$

11.2: goodness-of-fit test

73 . Enrolled = 200(0.66) = 132. Not enrolled = 200(0.34) = 68

74 .

Observed (O) Expected (E) O – E (O – E)2 $\frac{{\left(O-E\right)}^{2}}{z}$
Enrolled 145 132 145 – 132 = 13 169 $\frac{169}{132}=1.280$
Not enrolled 55 68 55 – 68 = –13 169 $\frac{169}{68}=2.485$

75 . df = n – 1 = 2 – 1 = 1.

76 . Using the calculator function Chi-square GOF – Test (in STAT TESTS), the test statistic is 3.7656 and the p-value is 0.0523. Do not reject the null hypothesis. At the 5% significance level, there is insufficient evidence to conclude that high school most recent graduating class distribution of enrolled and not enrolled does not fit that of the national distribution.

77 . approximates the normal

78 . skewed right

11.3: test of independence

79 .

Cell = Yes Cell = No Total
Freshman $\frac{250\left(300\right)}{500}=150$ $\frac{250\left(200\right)}{500}=100$ 250
Senior $\frac{250\left(300\right)}{500}=150$ $\frac{250\left(200\right)}{500}=100$ 250
Total 300 200 500

80 . $\frac{{\left(100-150\right)}^{2}}{150}=16.67$
$\frac{{\left(150-100\right)}^{2}}{100}=25$
$\frac{{\left(200-100\right)}^{2}}{150}=16.67$
$\frac{{\left(50-100\right)}^{2}}{100}=25$

81 . Chi-square = 16.67 + 25 + 16.67 + 25 = 83.34.
df = ( r – 1)( c – 1) = 1

82 . p -value = P (Chi-square, 83.34) = 0
Reject the null hypothesis.
You could also use the calculator function STAT TESTS Chi-Square – Test.

11.4: test of homogeneity

83 . The table has five rows and two columns. df = ( r – 1)( c – 1) = (4)(1) = 4.

11.5: comparison summary of the chi-square tests: goodness-of-fit, independence and homogeneity

84 . Using the calculator function (STAT TESTS) Chi-square Test, the p -value = 0. Reject the null hypothesis. At the 5% significance level, there is sufficient evidence to conclude that the poll responses independent of the participants’ ethnic group.

85 . The expected value of each cell must be at least five.

86 . H 0 : The variables are independent.
H a : The variables are not independent.

87 . H 0 : The populations have the same distribution.
H a : The populations do not have the same distribution.

11.6: test of a single variance

88 . H 0 : σ 2 ≤ 5
H a : σ 2 >5

12.1 linear equations

1 . Which of the following equations is/are linear?

1. y = –3 x
2. y = 0.2 + 0.74 x
3. y = –9.4 – 2 x
4. A and B
5. A, B, and C

what is normal distribution
What is the uses of sample in real life
change of origin and scale
3. If the grades of 40000 students in a course at the Hashemite University are distributed according to N(60,400) Then the number of students with grades less than 75 =*
If a constant value is added to every observation of data, then arithmetic mean is obtained by
sum of AM+Constnt
Fazal
data can be defined as numbers in context. suppose you are given the following set of numbers 18,22,22,20,19,21
what are data
what is mode?
what is statistics
Natasha
statistics is a combination of collect data summraize data analyiz data and interprete data
Ali
what is mode
Natasha
what is statistics
It is the science of analysing numerical data in large quantities, especially for the purpose of inferring proportions in a whole from those in a representative sample.
Bernice
history of statistics
statistics was first used by?
Terseer
if a population has a prevalence of Hypertension 5%, what is the probability of 4 people having hypertension from 8 randomly selected individuals?
Carpet land sales persons average 8000 per weekend sales Steve qantas the firm's vice president proposes a compensation plan with new selling incentives Steve hopes that the results of a trial selling period will enable him to conclude that the compensation plan increases the average sales per sales
Supposed we have Standard deviation 1.56, mean 6.36, sample size 25 and Z-score 1.96 at 95% confidence level, what is the confidence interval?
if Y=a+bX and X=c+dY the show that |r|= √hd where r is regression coefficient
this is a linear function. I presume this will be solved simultaneously?
no
Naheed
how can I get esyer statistic?
yes
pakistan
msc completed
i am bba students at nfc
Hamdan
stat. is the subject in bba .... exam is online . .. which fee u charge to slove my exam ?
Hamdan
which uni u completed msc?
Hamdan
no charges. i am just helping you. not for fees
really
Hamdan
yeap
i am so glad this type of people lived in pakistan💔
Hamdan
but unfortunately bba students just live for money🤣
Hamdan
no purpose of life without money🤠
Hamdan
money is not everything
Hamdan
ok ye tu easy topic h bhot
main tume is se related ques aur theory bejti ho
in an examination 60% passed in physics 52% passed in statistics. while 32% failed in both the subject's using relations between class frequencies in attributes find the percentage of student passed in both the subject's
Satish
Hamdan
apply
Hamdan