text:
## Domain Restrictions

### Learning Outcomes

• Find domain of a function algebraically

Functions are a correspondence between two sets, called the domain and the range. When defining a function, you usually state what kind of numbers the domain (x) and range (f(x)) values can be. But even if you say they are real numbers, that does not mean that all real numbers can be used for x. It also does not mean that all real numbers can be function values, f(x). There may be restrictions on the domain and range. The restrictions partly depend on the type of function.

In this topic, all functions will be restricted to real number values. That is, only real numbers can be used in the domain, and only real numbers can be in the range.

There are two main reasons why domains are restricted.

• You cannot divide by $0$.
• You cannot take the square (or other even) root of a negative number, as the result will not be a real number.

These two issues would be of concern when the function is either of the following:

• A rational function where the denominator could potentially become $0$ for some value or values of x, $f\left(x\right)=\dfrac{x+1}{2-x}$ is a rational function.
• A radical function with an even index (such as a square root), where the radicand (quantity under the radical) could potentially be negative for some value or values of x. $f\left(x\right)=\sqrt{7-x}$ is a radical function.

The following table gives examples of domain restrictions for several different rational functions. Note that a rational function has the variable present in the denominator.

Function Restrictions to the Domain
$f(x)=\dfrac{1}{x}$ If $x=0$, you would be dividing by $0$, so $x\neq0$.
$f(x)=\dfrac{2+x}{x-3}$ If $x=3$, you would be dividing by $0$, so $x\neq3$.
$f(x)=\dfrac{2(x-1)}{x-1}$ Although you can simplify this function to $f(x)=2$, when $x=1$, the original function would include division by $0$, so $x\neq1$.
$f(x)=\dfrac{x+1}{{{x}^{2}}-1}$ Both $x=1$ and $x=−1$ would make the denominator 0. Again, this function can be simplified to $f(x)=\dfrac{1}{x-1}$, but when $x=1$ or $x=−1$, the original function would include division by 0, so $x\neq1$ and $x\neq−1$.
$f(x)=\dfrac{2(x-1)}{{{x}^{2}}+1}$ This is an example with no domain restrictions, even though there is a variable in the denominator. Since $x^{2}\geq0,x^{2}+1$ can never be $0$. The least it can be is $1$, so there is no danger of division by $0$.

Square roots of negative numbers could happen whenever the function has a variable under a radical with an even root. Look at the following examples and note that “square root of a negative variable” doesn’t necessarily mean that the value under the radical sign is negative. For example, if $x=−4$, then $−x=−(−4)=4$, a positive number.

Function Restrictions to the Domain
$f(x)=\sqrt{x}$ If $x<0$, you would be taking the square root of a negative number, so $x\geq0$.
$f(x)=\sqrt{x+10}$ If $x<−10$, you would be taking the square root of a negative number, so $x\geq−10$.
$f(x)=\sqrt{-x}$ When is $-x$ negative? Only when x is positive. (For example, if $x=1$, then $−x=-1$. But if $x=-3$, then $−x=3$. This means $x\leq0$.
$f(x)=\sqrt{{{x}^{2}}-1}$ $x^{2}–1$ must be positive, $x^{2}–1>0$. So $x^{2}>1$. This happens only when x is greater than 1 or less than $−1$: $x\leq−1$ or $x\geq1$.
$f(x)=\sqrt{{{x}^{2}}+10}$ There are no domain restrictions even though there is a variable under the radical. Since $x^{2}\ge0$, $x^{2}+10$ can never be negative. The least it can be is $\sqrt{10}$, so there is no danger of taking the square root of a negative number.

So, how exactly do you define the domain of a function?

### How To: Given a function written in equation form, find the domain

1. Identify the input values.
2. Identify any restrictions on the input and exclude those values from the domain.
3. Write the domain in interval form, if possible.

### Example

Find the domain of the function $f\left(x\right)={x}^{2}-1$.

### How To: Given a function written in equation form that includes a fraction, find the domain

1. Identify the input values.
2. Identify any restrictions on the input. If there is a denominator in the function’s formula, set the denominator equal to zero and solve for $x$ . If the function’s formula contains an even root, set the radicand greater than or equal to $0$ and then solve.
3. Write the domain in interval form, making sure to exclude any restricted values from the domain.

### Example

Find the domain of the function $f\left(x\right)=\dfrac{x+1}{2-x}$.

### How To: Given a function written in equation form including an even root, find the domain

1. Identify the input values.
2. Since there is an even root, exclude any real numbers that result in a negative number in the radicand. Set the radicand greater than or equal to zero and solve for $x$.
3. The solution(s) are the domain of the function. If possible, write the answer in interval form.

### Example

Find the domain of the function $f\left(x\right)=\sqrt{7-x}$.

The domain and range of a function are not necessarily the same. For example, the function $f\left(x\right)=-\dfrac{1}{\sqrt{x}}$ has the set of all positive real numbers as its domain but the set of all negative real numbers as its range. As a more extreme example, a function’s inputs and outputs can be completely different categories (for example, names of weekdays as inputs and numbers as outputs, as on an attendance chart), in such cases the domain and range have no elements in common.


text:
# Lesson 3

Introducing Polynomials

### Lesson Narrative

The purpose of this lesson is to formally define what the expression for a polynomial function can look like when written in standard form and to expose students to a wide variety of graphs of polynomials. Students are introduced to the new terms degree, relative minimum, and relative maximum for describing features of expressions and graphs. The degree of a polynomial is the highest exponent occurring on $$x$$ when the polynomial is written out as a sum of non-zero constants times powers of $$x$$, with like terms collected. The relative minimum is a point on the graph of a function that is lower than any of the points around it, and the relative maximum is a point on the graph of a function that is higher than any of the points around it.

Students are also reminded of other useful vocabulary for polynomials, such as leading term and constant term, and use precise language to describe expressions and identify polynomials (MP6). In this lesson, students use vocabulary to make connections between polynomials and their graphs. They will continue to deepen their understanding of these connections throughout the unit.

In the second activity, students match equations to graphs by focusing on the structure (MP7). Students will continue this work in future lessons as they make connections between the structure of a polynomial written in factored form and the zeros of the function. In the final activity, students have the opportunity to play with graphing a variety of polynomials as they try to make graphs that meet specific criteria. This is meant to be informal and an opportunity for students to improve their skill graphing with technology while building their mental profile of what graphs of polynomials can look like.

### Learning Goals

Teacher Facing

• Identify relative minimums and relative maximums of graphs of polynomials.
• Identify the degree, leading term, and constant term of a polynomial.

### Student Facing

• Let’s see what polynomials can look like.

### Required Preparation

Acquire devices that can run Desmos (recommended) or other graphing technology. It is ideal if each student has their own device. (Desmos is available under Math Tools.)

### Student Facing

• I can identify important characteristics of polynomial graphs and expressions.

Building Towards

### Glossary Entries

• degree

The degree of a polynomial in $$x$$ is the highest exponent occuring on $$x$$ when you write the polynomial out as a sum of non-zero constants times powers of $$x$$ (with like terms collected).

• polynomial

A polynomial function of $$x$$  is a function given by a sum of terms, each of which is a constant times a whole number power of $$x$$. The word polynomial is used to refer both to the function and to the expression defining it.

• relative maximum

A point on the graph of a function that is higher than any of the points around it.

• relative minimum

A point on the graph of a function that is lower than any of the points around it.

format: plain


text:
### DTRANSPOSEDdata science, AI, technology Blog About Projects

The best of GAN papers in the year 2018 | DTRANSPOSED

# The best of GAN papers in the year 2018

This year I had a great pleasure to be involved in a research project, which required me to get familiar with a substantial number of publications from the domain of deep learning for computer vision. It allowed me to take a deep dive into the field and I was amazed by the progress done in the last 2-3 years. It is truly exciting and motivating how all different subfields such as image inpainting, adversarial examples, super-resolution or 3D reconstruction have greatly benefited from the recent advances. However, there is one type of neural networks, which has earned truly massive amounts of hype (in my humble opinion definitely for a reason)- Generative Adversarial Networks (GANs). I can agree that those models are fascinating and I am always on a lookout for some new GAN ideas.

Inspired by this very modest reddit discussion, I have decided to make a quick overview of the most interesting publications from 2018 regarding GANs. The list is highly subjective - I have chosen research papers which were not only state-of-the-art, but also cool and highly enjoyable. In this first chapter I will discuss three publications. By the way, if you are interested in older GAN papers, this article may be helpful. One of the papers mentioned by the author even made it to my top list.

1. GAN Dissection: Visualizing and Understanding Generative Adversarial Networks - given the amount of hype around GANs, it is obvious that this technology, sooner or later, would be used commercially. However, because we know so little about their inner mechanism, I think that it remains difficult to create a reliable product. This work takes a huge leap towards the future, where we are able to truly control GANs. Definitely check out their great interactive demo, the results are stunning!
2. A Style-Based Generator Architecture for Generative Adversarial Networks - NVIDIA research team regularly comes up with trail-blazing concepts (great image inpainting paper from 2018, quite recent demo of using neural networks for graphics rendering). This paper is no exception, plus the video which shows their results is simply mesmerising.
3. Evolutionary Generative Adversarial Networks - this is a really readable and simply clever publication. Evolutionary algorithms together with GAN - this is bound to be cool.

## GAN Dissection: Visualizing and Understanding Generative Adversarial Networks

### Details

The paper has been submitted on 26.11.2018. The authors have created a great project website with interactive demo.

### Main idea:

GANs have undoubtedly proven how powerful the deep neural networks are. There is something beautiful about the way a machine learns to generate stunning, high resolution images as if it understood the world like we do. But, just like the rest of those wonderful statistical models, their biggest flaw is the lack of interpretability. This research makes a very important step towards understanding GANs. It allows us to find units in the generator that a “responsible” for generation of certain objects, which belong to some class $c$. The authors claim, that we can inspect a layer of the generator and find a subset of it’s units which cause the generation of $c$ objects in the generated image. The authors search for the set of “causal” units for each class by introducing two steps: dissection and intervention. Additionally, this is probably the first work, which provides systematic analysis for understanding of the GANs’ internal mechanisms.

### The method:

A generator $G$ can be viewed as a mapping from a latent vector $\textbf{z}$ to an generated image $\textbf{x} = G(\textbf{z})$ . Our goal is to understand the $\textbf{r}$, an internal representation, which is an output from particular layer of the generator $G$.

We would like to inspect $\textbf{r}$ closely, with respect to objects of the class $c$. We know that $\textbf{r}$ contains an encoded information about the generation of those particular objects. Our goal is to understand how is this information encoded internally. The authors claim that there is a way to extract those units from $\textbf{r}$, which are being responsible for generation of class $c$ objects.

Here, $\mathbb{U}=(U,\bar{U})$ is a set of all units in the particular layer, $U$ are units of interest (causal units) and $P$ are pixel locations. The question is, how to perform this separation? The authors propose two steps which are a tool to understand the GAN black-box. Those are dissection and intervention.

Dissection measures agreement between a unit $u$ and a class $c$

Dissection - we want to identify those interesting classes, which have an explicit representation in $\textbf{r}$. This is done by basically comparing two images. We obtain the first image by computing $\textbf{x}$, and then running in through a semantic segmentation network. This would return pixel locations $\textbf{s}_{c}(\textbf{x})$ corresponding to the class of interest (e.g. trees). The second image is being generated by taking $\textbf{r}_{u,P}$, upsampling it so it matches the dimension of $\textbf{s}_c(\textbf{x})$ and then thresholding it to have a hard decision on which pixels are being “lit” by this particular unit. Finally we calculate spatial agreement between both outputs. The higher the value, the higher the causal effect of a unit $u$ on a class $c$. By performing this operation for every unit, we should eventually find out, which classes have an explicit representation in the structure of $\textbf{r}$.

Intervention measures the causal effect of a set of units U on a class $c$

Intervention - at this point we have identified the relevant classes. Now, we attempt to find the best separation for every class. This means that on one hand we ablate (suppress) unforced units, hoping that the class of interest would disappear from the generated image. On the other hand, we amplify their influence of causal units on the generated image. This way we can learn how much they contribute to the presence of the class of interest $c$. Finally, we segment out the class $c$ from both images and make a comparison. The less agreement between the semantic maps, the better. This means that on one image we have completely ‘tuned out’ the influence of trees, while the second image contains solely a jungle.

### Results:

a) images of churches generated by the Progressive GAN, b) given the pre-trained Progressive GAN we identify the units responsible for generation of class “trees”, c) we can either suppress those units to “erase” trees from images…, d) amplify the density of trees in the image

The results show that we are on a good track to understand the internal concepts of a network. Those insights can help us improve the network’s behavior. Knowing which features of the image come from which part of the neural network is very valuable for interpretation, commercial use and further research.

a) for debugging purposes, we can identify those units which are introducing artifacts… , b) and c) and turn them off to “repair” the GAN

One problem which could be tackled are visual artifacts in the generated images. Even a well-trained GAN can sometimes generate a terribly unrealistic image and the causes of these mistakes have been previously unknown. Now we may relate those mistakes with sets of neurons that cause the visual artifacts. By identifying and suppressing those units, one can improve the the quality of generated images.

By setting some units to the fixed mean value e.g. for doors, we can make sure that the doors will be present somewhere in the image. Naturally, this cannot violate the learned statistics of the distribution (we cannot force doors to appear in the sky). Another limitation comes from the fact, that some objects are so inherently linked to some locations, that it is impossible to remove them from the image. As an example: one cannot simply remove chairs from a conference hall, only reduce their density or size.

## A Style-Based Generator Architecture for Generative Adversarial Networks

### Details

The paper has been submitted on 12.12.2018. The authors assure that the code is to be released soon. Additionally, for people who would like to read more about this method but do not want to read the paper itself, there has been a nice summary published in a form of a blog post just two days ago.

### Main idea:

This work proposes an alternative view on GAN framework. More specifically, it draws inspiration from the style-transfer design to create a generator architecture, which can learn the difference between high-level attributes (such as age, identity when trained on human faces or background, camera viewpoint, style for bed images) and stochastic variation (freckles, hair details for human faces or colours, fabrics when trained on bed images) in the generated images. Not only it learns to separate those attributes automatically, but it also allows us to control the synthesis in a very intuitive manner.

Supplementary video with the overview of the results.

### The method:

Traditional GAN architecture (left) vs Style-based generator (right). In the new framework we have two network components: mapping network $f$ and synthesis network $g$. The former maps a latent code to an intermediate latent space $\mathcal{W}$, which encodes the information about the style. The latter takes the generated style and gaussian noise to create new images. Block “A” is a learned affine transform, while “B” applies learned per-channel scaling factors to the noise input.

In the classical GAN approach, the generator takes some latent code as an input and outputs an image, which belongs to the distribution it has learned during the training phase. The authors depart from this design by creating a style-based generator, comprised of two elements:

1. A fully connected network, which represents the non-linear mapping $f:\mathcal{Z} \rightarrow \mathcal{W}$
2. A synthesis network $g$.

Fully connected network - By transforming a normalized latent vector $\textbf{z} \in \mathcal{Z}$, we obtain an intermediate latent vector $\textbf{w} = f(\textbf{z})$. The intermediate latent space $\mathcal{W}$ effectively controls the style of the generator. As a side note, the authors make sure to avoid sampling from areas of low density of $\mathcal{W}$. While this may cause loss of variation in $\textbf{w}$, it is said to ultimately result in better average image quality. Now, a latent vector $\textbf{w}$ sampled from intermediate latent space is being fed into the block “A” (learned affine transform) and translated into a style $\textbf{y} =(\textbf{y}_{s},\textbf{y}_{b})$. The style is finally injected into the synthesis network through adaptive instance normalization (AdaIN) at each convolution layer. The AdaIN operation is defined as:

Synthesis network - AdaIN operation alters each feature map $\textbf{x}_{i}$ by normalizing it, and then scaling and shifting using the components from the style $\textbf{y}$. Finally, the feature maps of the generator are also being fed a direct means to generate stochastic details - explicit noise input - in the form of single-channel images containing uncorrelated Gaussian noise.

To sum up, while the explicit noise input may be viewed as a “seed” for the generation process in the synthesis network, the latent code sampled from $\mathcal{W}$ attempts to inject a certain style to an image.

### Results:

The authors revisit NVIDIA’s architecture from 2017 Progressive GAN. While they hold on to the majority of the architecture and hyperparameters, the generator is being “upgraded” according to the new design. The most impressive feature of the paper is style mixing.

Visualising the effects of style mixing. By having an image produced by one latent code (source), we can override a subset of the features of another image (destination). Here, we override layers corresponding to coarse spatial resolutions (low resolution feature maps). This way we influence high-level traits of the destination image.

The novel generator architecture gives the ability to inject different styles to the same image at various layers of the synthesis network. During the training, we run two latent codes $\textbf{z}_{1}$ and $\textbf{z}_2$ through the mapping network and receive corresponding $\textbf{w}_1$ and $\textbf{w}_2$ vectors. The image generated purely by $\textbf{z}_1$ is known as the destination. It is a high-resolution generated image, practically impossible to distinguish from a real distribution. The image generated only by injecting $\textbf{z}_2$ is being called a source. Now, during the generation of the destination image using $\textbf{z}_1$, at some layers we may inject the $\textbf{z}_2$ code. This action overrides a subset of styles present in the destination with those of the source. The influence of the source on the destination is controlled by the location of layers which are being “nurtured” with the latent code of the source. The lower the resolution corresponding to the particular layer, the bigger the influence of the source on the destination. This way, we can decide to what extent we want to affect the destination image:

• coarse spatial resolution (resolutions $4^2 - 8^2$) - high level aspects (such as hair style, glasses or age)
• middle styles resolution (resolutions$16^2 - 32^2$) - smaller scale facial features (hair style details, eyes)
• fine resolution resolutions (resolutions $64^2 - 1024^2$) - just change small details such as hair colour, tone of skin complexion or skin structure

The authors apply their method further to images of cars, bedrooms and even cats, with stunning, albeit often surprising results. I am still puzzled why a network decides to affect the positioning of paws in cat images, but does not care about rotation of wheels in car images…

What I find really amazing - this framework can be further applied to different datasets, such as images of cars and bedrooms

### Details

The paper has been submitted on 1.03.2018.

### Main idea:

In the classical setting GANs are being trained by alternately updating a generator and discriminator using back-propagation. This two-player minmax game is being implemented by utilizing the cross-entropy mechanism in the objective function. The authors of E-GAN propose the alternative GAN framework which is based on evolutionary algorithms. They restate loss function in form of an evolutionary problem. The task of the generator is to undergo constant mutation under the influence of the discriminator. According to the principle of “survival of the fittest”, one hopes that the last generation of generators would “evolve” in such a way, that it learns the correct distribution of training samples.

### The method:

The original GAN framework (left) vs E-GAN framework (right). In E-GAN framework a population of generators $G_{\theta}$ evolves in a dynamic environment - the discriminator $D$. The algorithm involves three phases: variation, evaluation and selection. The best offsprings are kept for next iteration.

An evolutionary algorithm attempts to evolve a population of generators in a given environment (here, the discriminator). Each individual from the population represents a possible solution in the parameter space of the generative network. The evolution process boils down to three steps:

1. Variation: A generator individual $G_{\theta}$ produces its children $G_{\theta_{0}}, G_{\theta_{1}}, G_{\theta_{2}}, ...$ by modifying itself according to some mutation properties.
2. Evaluation: Each child is being evaluated using a fitness function, which depends on the current state of the discriminator
3. Selection: We assess each child and decide if it did good enough in terms of the fitness function. If yes, it is being kept, otherwise we discard it.

Those steps involve two concepts which should be discussed in more detail: mutations and a fitness function.

Mutations - those are the changes introduced to the children in the variation step. There are inspired by original GAN training objectives. The authors have distinguished three, the most effective, types of mutations. Those are minmax mutation (which encourages minimization of Jensen-Shannon divergence), heuristic mutation (which adds inverted Kullback-Leibler divergence term) and least-squares mutation (inspired by LSGAN).

Fitness function - in evolutionary algorithm a fitness function tells us how close a given child is to achieving the set aim. Here, the fitness function consists of two elements: quality fitness score and diversity fitness score. The former makes sure, that generator comes up with outputs which can fool the discriminator, while the latter pays attention to the diversity of generated samples. So one hand, the offsprings are being taught not only to approximate the original distribution well, but also to remain diverse and avoid the mode collapse trap.

The authors claim that their approach tackles multiple, well-known problems. E-GANs not only do better in terms of stability and suppressing mode collapse, it also alleviates the burden of careful choice of hyperparameters and architecture (critical for the convergence). Finally, the authors claim the E-GAN converges faster that the conventional GAN framework.

### Results:

The algorithm has been tested not only on synthetic data, but also against CIFAR-10 dataset and Inception score. The authors have modified the popular GAN methods such as DCGAN and tested them on real-life datasets. The results indicate, that E-GAN can be trained to generate diverse, high-quality images from the target data distribution. According to the authors, it is enough to preserve only one child in every selection step to successfully traverse the parameter space towards the optimal solution. I find this property of E-GAN really interesting. Moreover, by scrutinizing the space continuity, we can discover, that E-GAN has indeed learned a meaningful projection from latent noisy space to image space. By interpolating between latent vectors we can obtain generated images which smoothly change semantically meaningful face attributes.

Linear interpolation in latent space $G((1-\alpha)\textbf{z}_1+\alpha\textbf{z}_2)$. The generator has learned distribution of images from CelebA dataset. $\alpha = 0.0$ corresponds to generating an image from vector $\textbf{z}_1$, while $\alpha = 1.0$ means that the image came from vector $\textbf{z}_2$. By altering alpha, we can interpolate in latent space with excellent results.

All the figures are taken from the publications, which are being discussed in my blog post

Source of the cover image: https://www.saatchiart.com


text:
How does after-hours trading affect the next session prices? [closed]

I just read about after-hours trading (and here ), but remain unclear as to what happens to the price level of the next open session. In other words,

Do the prices change during after-market hours? (Or do they remain independent?)

• What do you mean "the next real session", the buying and selling at night is not real to you ? May 27 '18 at 22:43
• @AlexC I changed the word to open for your satisfaction. May 28 '18 at 10:23
• If nothing else after-hours trading is a statement about market expectations and expectations underlie everything wrt markets (and much else in human behavior for that matter). May 28 '18 at 12:22
• I see my question was closed as OT due to beginner status. Where would be a more appropriate place for these types of questions? Jun 4 '18 at 7:15

Yes, prices change overnight. A great reference on the issue is Lou, Polk and Spouras (2018).

They basically argue that there are investors who prefer to trade overnight whereas other prefer to trade during the day:

For example, and as the primary focus in our analysis, some investors may prefer to trade at or near the morning open while others may prefer to trade during the rest of the day up to and including the market close. Since these two periods when the market is open vs. when it is closed differ [?] along several key dimensions, including information on [?], price impact, and borrowing costs, it seems likely that many aspects of investor heterogeneity that might be relevant for asset pricing also manifest as a tendency to trade in one of these periods rather than the other. In this light, the presence of overnight and ìntraday clienteles seems a reasonable and perhaps even natural starting point.

Indeed it also seems that many known trading strategies earn most of their returns overnight rather than when markets are open. Take a look at their table II:

• great piece of information! May 28 '18 at 18:23

In short. Yes. the prices do change, but not all symbols trade, volume and liquidity is generally much lower with wider spreads. I would personally DE-emphasize the price action unless there is trading after release of earnings-- where volume is significant as there is more noise with larger spreads even on liquid issuers a relatively small buyer/seller can move the market after hours.

The opening session is driven more by futures markets if single issue futures are available or algos trading correlations with index futures-- but ultimately the closing price has nothing to do with where the open is. The open is created by the pre-open limit order levels and whoever hits the bid or ask with a market order first makes the print for the open.

• So could this be summarized with the following example? Some stock, e.g. aapl closes trades today at, let's say USD 150. Then after-hours trades occur, where people have been selling volumes at ~130, after hearing about some negative after-hour news. Will tomorrows opening price still be at 150, or will it reflect the after-hour trades? (Also, I am ignoring the obvious run for the money during the 1st minutes of opening.) May 28 '18 at 10:33
• Why would anyone sell at 130 if the stock were likely to open next day at 150?
– dm63
May 28 '18 at 12:08
• market prices are made by two parties they have a bid and and an ask for example: person 1 puts in a LIMIT buy order and wants a price of 130.00 , another person has a limit sell at 130.01, the market sits there and will do NOTHING until another person comes in and puts in a market order to buy at 130.01 or a sell at 130.00 which prints the opening price.... close has NOTHING to do with the open, other than peoples tendency to think the stock is likely worth close to what it closed yesterday.... which makes close and open prices relatively similar. Jun 15 '18 at 2:19
• I would recommend you look at illiquid markets to understand this. There are companies that have bid and asks out, but never trade Jun 15 '18 at 2:25


text:
## Latex Graph Generator

Jan 24, 2018 · In last week’s post, I discussed various ways to customize bar/histogram plots, including customization of the tick labels. Quickly create even complex LaTeX tables online with our generator -- cells merging is supported together with borders editing. Export (png, jpg, gif, svg, pdf) and save & share. 3-1+b1) Extract page mode and named destinations as PDFmark from PDF feynmf (1. Trying to simplify plotting functions with TikZ. It currently supports class, activity and use case diagrams and state machines. But it is a good practice to place big equations on separate lines: In this case the LaTeX syntax will be highlighted in the source code. No installation, real-time collaboration, version control, hundreds of LaTeX templates, and more. CSDL | IEEE Computer Society. This post serves as an example-based intro to causal graphs in tikz. The easiest way to create custom grid paper printable. phpDocumentor 2 is capable of extracting interesting information and presenting it in the form of graphs and reports. The basic idea is that you provide the input data/formula and pgfplots does the rest. DAGitty is a browser-based environment for creating, editing, and analyzing causal models (also known as directed acyclic graphs or causal Bayesian networks). [ESC] returns the editor to command mode (where you can quit, for example by typing :q!). Do not insert a new line, but a small. Graph is randomized such that # it first ensures that there is always a path from any vertex to each other by first constructing # a tree, and then adding randomly sampled edges to ensure we get a more interesting looking graph. You will need a latex installat. May 20, 2019 · GraphQL Code Generator let you choose the output that you need, based on available plugins, which can also be easily customized. This is due to the simplicity of bar graphs in general, which consists simply of images of varying lengths. I am a scientist/engineer with a background in computational condensed-matter physics, and I currently work for NXP Semiconductors in their Global Technology Innovation division in Eindhoven, the Netherlands. The graph gives the emf of the generator as a function of time. How to import data from EXCEL tables into LaTeX? You can then just copy the stuff to the clipboard and paste into your tex-editor (I use Sublime Text 2, a programmers tool). SPSS makes it so easy to copy. See the link in my last for what works with what. Finally, the input \LaTeX comes out in the output as LATEX. If you have any enquiries about this website or the content on it, please contact: [email protected] underlying graph, reusing the already established tree-based sub-drawing of the hyperarc as far as possible. Lost a graph? Click here to email you a list of your saved graphs. For my first assignment using Stata, I spent four or five hours trying to present my output in a “professional” form. Drawing Graphs with MetaPost The graph macros automatically shift and rescale coordinates from data files,gdraw paths, and glabel locationstofitthegraph. Documentation distributed with LaTeX General documentation. LaTeX to UML. Oct 11, 2019 · To show LaTex equation in Axis Title and Legend Add LaTeX equations to worksheet metadata area (e. Equations of Exponential Functions. " Emmitt, Wesley College. When writing, the writer uses plain text as opposed to the formatted text found in WYSIWYG ("what you see is what you get") word processors like Microsoft Word, LibreOffice Writer and Apple Pages. Ipe is a drawing editor for creating figures in PDF format. It has more graphic tools and resources incorporated into it than any other online graphics program, while still being super lightweight. It adds so much to any presentation or article to add a graph and it's so easy with the copy and paste facility. Windows and Mac users most likely want to download the precompiled binaries listed in the upper box, not the source code. Make bar charts, histograms, box plots, scatter plots, line graphs, dot plots, and more. Asymptote: The Vector Graphics Language Asymptote is a powerful descriptive vector graphics language that provides a natural coordinate-based framework for technical drawing. 2d graphs made to look 3d are the best of both worlds. Creating Graphs and Plots in LaTeX This page contains a brief tutorial on how to create scientific graphs (function plots, histograms, bar graphs, scatter plots, contour lines, color maps, surface plots, ) in LaTeX documents using GLE. It may happen that you need a more recent LaTeX than the one that your favourite TeX distribution carries, e. Its so easy to do it in excel, but i would like to learn it to do in LaTex. latex graph free download. \\ n Table of Contents. They do not show changes over time. MathType and WIRIS Join Forces "MathType Everywhere" for Microsoft Office Online, Windows and Mac, and Google Docs more> MathFlow 2. This is an online, interactive LaTeX editor. subcaption A useful extension is the subcaption package (the subfigure and subfig packages are deprecated and shouldn't be used any more), which uses subfloats within a single float. Downloadable Graph Paper and Measurement Tools (pdf) Graph Paper Generators. Notice that the graph repeats itself as it moves along the x-axis. Monday, July 22, 2019 " Would be great if we could adjust the graph via grabbing it and placing it where we want too. py, which is not the most recent version. Jan 24, 2018 · In last week’s post, I discussed various ways to customize bar/histogram plots, including customization of the tick labels. NOTICE: even an indetectable amount of oil on the belt can interfere with roller charging and can cause the generator to stop working. The displaymath environment is for formulas that appear on their own line. Piecewise Functions A Function Can be in Pieces. pdf that you just can't memorize. Math is LibreOffice's formula editor, and can be invoked in your text documents, spreadsheets, presentations and drawings, enabling you to insert perfectly formatted mathematical and scientific formulas. MathJax Friends will be listed on the MathJax Sponsors page. Result graph (Update: 27. Originally, it was written for use in my diploma thesis (which is finished now), but I may continue development if there is interest. DiagrammeinTEX EsexistierendiversespezialisiertePakete chronosys SatzvonZeitstrahlen histogr (sehrsimple)Histogramme bchart einfacheBalkendiagramme gnuplottex. Besides various online services and scripts, there are several LaTeX packages that generate tables directly from CSV (comma separated value) files. gov to your contacts/address book, graphs that you send yourself through this system will not be blocked or filtered. An easy-to-use LaTeX editor/renderer. Visit our Guide or Video Demo page for more information. # Creates a graph with the specified number of vertices and edges. Topics include: creating and building a document, text mode vs. MathType and WIRIS Join Forces "MathType Everywhere" for Microsoft Office Online, Windows and Mac, and Google Docs more> MathFlow 2. Let's draw the same binary search as in the above example. As the name implies, this type of graph measures trends over time, but the timeframe can be minutes, hours, days, months, years, decades, or centuries. En online LaTeX editor, der er let at bruge. Anyway, sometimes is necessary to have more control over the layout of the document; and for this reason in this article is explained how to insert line breaks, page breaks and arbitrary blank spaces. , technical illustrations and drawings) from a geometric/algebraic description, with standard features including the drawing of points, lines, arrows, paths, circles, ellipses and polygons. DAGitty is a browser-based environment for creating, editing, and analyzing causal models (also known as directed acyclic graphs or causal Bayesian networks). This entry was posted on May 13, 2010 at 5:45 pm and is filed under LaTex. It's included in the MikTeX distribution, but take a look at the short guide (a pdf file) for a quick start. If you need help contact [email protected] This graph repeats every 6. Make bar charts, histograms, box plots, scatter plots, line graphs, dot plots, and more. Is there a specific reason you need to graph the function within LaTeX? wouldn't it be better to use something like R or matlab to generate a pdf that you can then \includegraphics? This will generally speed up compilation, and graphs thus generated are probably more customisable and so on. Open source, written for Microsoft Windows, Ubuntu and Debian. Learning to Work with Charts and Graphs. How to Create a Semi Log Graph Paper in Latex [PDF Format] In this video you will learn how to create a semi log graph paper. centimeter rulers; protractors; calipers; Petri dish insert ; Linear Graph Paper. MathQuill is an open source formula editor for the Web maintained by @laughinghan and @stufflebear. CSV file This application was created by the Tyers and Rappsilber labs. It provides plotting and regression functionality right along side of the Doc you are working on, making life easier for both students and teachers. On the right, there is a preview of the compiled TikZ picture, i. If you are looking for a great open source online LaTeX editor, head over to Overleaf. Oct 05, 2017 · To create a graph out of an XML file, we used the yEd graph editor. Lost a graph? Click here to email you a list of your saved graphs. Visit the Learning Center. 1, 8, 7, Windows Vista and Windows XP, Linux and Mac OS X. What is this? Anyone who works with LaTeX knows how time-consuming it can be to find a symbol in symbols-a4. au Introduction. The LaTeX team cannot guarantee that TeX distributions, even recent ones, contain the most recent version of LaTeX. HTML Table Generator. Learn to work on Office files without installing Office, create dynamic project plans and team calendars, auto-organize your inbox, and more. The \graph macro embeds a graph in a question. Sep 18, 2011 · LaTeX tutorial using Texmaker. The idea here is we use semilog or log-log graph axes so we can more easily see details for small values of y as well as large values of y. CSV file This application was created by the Tyers and Rappsilber labs. In the LaTeX Equation Editor, enter your markup text. Joint Structured. --Graph of the output of a simple dc generator. Create charts and graphs online with Excel, CSV, or SQL data. Google to Add Mainline Linux Kernel Support to Android Android devices usually have old, outdated Linux kernel and maintaining it is a tedious task. Examples for a single figure, and multiple figures next to each other, using the subfigure environment. underlying graph, reusing the already established tree-based sub-drawing of the hyperarc as far as possible. Thanks in advance. Classic HTML tables don't require an additional stylesheet in order to display the grid layout but Div tags do. Unlimited projects and collaborators. The displaymath environment is for formulas that appear on their own line. There are many types of charts and graphs of varied complexity. An online LaTeX editor that's easy to use. emf0 is the peak emf. The Basics. See our Version 4 Migration Guide for information about how to upgrade. You can purchase a license here: Buy Detexify for Mac. The x-axis represents the price of the underlying security and the y-axis. This work is licensed under a Creative Commons Attribution-NonCommercial 2. Sweave enables the embedding of R code within LaTeX documents to generate a PDF file that includes narrative and analysis, graphics, code, and the results of computations. To change the size of a font use a new font size parameter. You may want to change the labels for the groups or axis labels or title. Result graph (Update: 27. tex as usual. Oct 05, 2017 · To create a graph out of an XML file, we used the yEd graph editor. 0 graphdrawing library [Open in Overleaf] Drawing lattice points and vectors [Open in Overleaf] Gray Code in 4-cube [Open in Overleaf] H-tree and b-tree [Open in Overleaf]. Create charts and graphs online with Excel, CSV, or SQL data. Can you move some of the vertices or bend. I recommend excel2latex. parser = argparse. Our worksheet generator helps you make puzzles and printables that are educational, personal, and fun! Perfect for classrooms, these make-your-own word searches, crosswords, scrambles, and matching lists are an excellent tool for reviewing key subjects and skills. 편집기에서 제공하는 많은 종류의 수식들을 이용하여 버튼 클릭만으로도 원하는 수식을 만들수 있습니다. Generates tables and data-grids as Latex, HTML, Markdown, JSON, SQL, Wiki markup, Balsamiq, BBCode, Mathematica and more. 10 but as was mentioned by a previous reviewer, ensure that you "set absolute paths for the latex and dvipng commands (in Confluence Admin go to: Manage Add-Ons => Latex Plugin => Configure / then enter what 'which latex' and 'which dvipng' print on the console of the server). Visustin Editor lets you edit the automatically created charts. LaTeXDraw is developed in Java and thus runs on top of Linux, Windows, and Mac OS X. The \graph macro embeds a graph in a question. Labels and equations are typeset with LaTeX, for high-quality PostScript output. Great day! Welcome to a teeny tiny corner of the vast interwebs. Its native file format is a subset of PGF/TikZ, which means TikZiT files can be included directly in papers typeset using LaTeX. Its important for me to get good at ploting/graphs because I am engineering student and thats how we represent our data. Input LaTex script in Equation edit box. Also see Yifan's gallery of large graphs, all generated with the sfdp layout engine, but colorized by postprocessing the PostScript files. It is most commonly used as an equation editor for text documents, but it can also be used with other types of documents or stand-alone. No installation, real-time collaboration, version control, hundreds of LaTeX templates, and more. Free tool to create and download your own histogram Graph description Graph Title. The model starts with a complete graph with (m+1) nodes, where m is the same parameter used in the BA Model (number of links that the new node will have), and then I create a new node. It currently supports class, activity and use case diagrams and state machines. Insert comments, add shapes, highlight important points, adjust links, fine-tune the layout. Organized by functionality and usage. It is my first encounter with doxygen and I am a bit lost. LaTeX (/ ˈ l ɑː t ɛ x / LAH-tekh or / ˈ l eɪ t ɛ x / LAY-tekh) is a document preparation system. Match the formula of a piecewise function to its graph. Here graphs of numerous mathematical functions can be drawn, including their derivatives and integrals. 09 and current standard LaTeX2e) is given in the following document: LaTeX2e for authors. Create rich and colorful charts. Features of Graph Plotter Software: The Graph plotter - Graph Calculator is a mathematics graph software, which facilitates to plot mathematical equations of the form y = f(x). An example of the graphviz package, which uses dot in the background to draw graphs. The math environment is for formulas that appear right in the text. Best LaTeX Editors You Should Use in 2019. Long Name, Units, Comments, etc. But as you can see in the above figure, hyperbolas contain other important parts that you must consider. With free add-ons and extensions, you can seamlessly move your work from our supply and demand graph generator to a Word doc, Google Sheets, Slack chat, or a Wiki page in Confluence. log-log (4 cycle) log-log (numbered) Semi-Log Graph Paper. We can use vertical or horizontal bars. No installation, real-time collaboration, version control, hundreds of LaTeX templates, and more. Here is a full template document with a tikz graph. All equations are rendered as block equations. Here graphs of numerous mathematical functions can be drawn, including their derivatives and integrals. It is my first encounter with doxygen and I am a bit lost. Free math lessons and math homework help from basic math to algebra, geometry and beyond. Without specifying a unit (1,2), the standard one is cm (1cm,2cm). If you're using MikTex, there's a dropdown that will let you choose "Latex --> PDF". Unlimited projects and collaborators. Tips on using color in LaTeX. 5-1) Converts xfig files into ps, eps or pdf files using LaTeX for processing text foiltex (2. The nodes of the graph can be made hyperlinks as it is demonstrated in the sample project. - Fran Feb 5 at 2:04. Improve your math knowledge with free questions in "Complete a table and graph a linear function" and thousands of other math skills. How to import data from EXCEL tables into LaTeX? You can then just copy the stuff to the clipboard and paste into your tex-editor (I use Sublime Text 2, a programmers tool). Insertion mode begins upon entering an insertion or change command. Introduction Spectral graph theory has a long history. Aug 11, 2019 · I am not sure about “physics diagram”, but I have tried a few packages to draw maths diagrams in $LaTeX$. Kirsling's graph editor is part of his Modal Logic Playground. However, graphs are easily built out of lists and dictionaries. To put a second plot next to the first one declare a new tikzpicture environment. If this section is missing, add the following to the end of the file. There are a number of options you can specify to control this process, the most important of which is which LaTeX program you want to use for typesetting. Examples for a single figure, and multiple figures next to each other, using the subfigure environment. Listed below are some basic templates and sample files that Laura wrote. It currently supports class, activity and use case diagrams and state machines. Documentation distributed with LaTeX General documentation. Overlength submissions will be rejected without review. It also provides best solutions through artificial intelligence. This online tool allows you to easily create HTML tables with the desired settings. xlsx file onto the page to extract data and convert it into a LaTeX table. Try opening that in a web browser. How do I use it?. linear; linear (large) linear (mm) linear (cm) Log-Log Graph Paper. Grapher: A built-in equation generator for OS X. Place the line \bibliography{x} in x. Let's draw the same binary search as in the above example. Login or register for free, it takes less than a minute!. any change in the output. The basic idea is that you provide the input data/formula and pgfplots does the rest. No installation, real-time collaboration, version control, hundreds of LaTeX templates, and more. Hyperbolic functions The abbreviations arcsinh, arccosh, etc. that's why i want to need the source co. Formula Editor. [latex]\left(0,a\right) We need to know the graph is based on a model that shows the same percent growth with each unit. Presentations, otherwise known as seminars, talks or lectures, are given to an audience with the purpose of sharing information with a group of people. Asymptote: The Vector Graphics Language Asymptote is a powerful descriptive vector graphics language that provides a natural coordinate-based framework for technical drawing. 3 diagrams-latex package options. Plotly's MATLAB ® graphs are interactive in the web browser. The different font sizes are listed below. One of the main reasons data analysts turn to R is for its strong graphic capabilities. The TexMakers have a table tool built into the editor. com) is a site at which you can create and manage your LaTeX projects and generate. Mar 09, 2019 · Yob - Graph Editor is geared towards classroom use. , NIPS 2015). Then there are two ways to process and print your. DiagrammeinTEX EsexistierendiversespezialisiertePakete chronosys SatzvonZeitstrahlen histogr (sehrsimple)Histogramme bchart einfacheBalkendiagramme gnuplottex. Produce your own math paper, full of research-level, professionally formatted nonsense! Just enter your name and those of up to 3 "co-authors". Overlength submissions will be rejected without review. [latex]\left(0,a\right) We need to know the graph is based on a model that shows the same percent growth with each unit. For instance, a hyperbola has two vertices. Mar 27, 2016 · I know my way around LaTeX, but managed to take notes in math lectures with Word faster and with fewer errors, simply due to the fact that (a) the language is much nicer to type (especially with non-US keyboard layouts due to needing far fewer braces and backslashes), and (b) you immediately see what you get. JavaScript can be used to dynamically generate a bar graph with user supplied data. UnicodeMath resembles real mathematical notation the most in comparison to all of the math linear formats, and it is the most concise linear format, though some may prefer editing in the LaTeX input over UnicodeMath since that is widely used in academia. For my first assignment using Stata, I spent four or five hours trying to present my output in a “professional” form. Creating Graphs and Plots in LaTeX This page contains a brief tutorial on how to create scientific graphs (function plots, histograms, bar graphs, scatter plots, contour lines, color maps, surface plots, ) in LaTeX documents using GLE. Eigenvalues and the Laplacian of a graph 1. It currently supports class, activity and use case diagrams and state machines. that's why i want to need the source co. GanttProject is free. It's also possible to export images in PNG, LaTeX, EPS, SVG. Then one runs pdflatex or latex on x. Here we will plot a function and will change the title of. Features & Benefits. Could you please give me some more guidance?--. Result Plot of the birthday paradox LaTeX-Code. py, which is not the most recent version. From the command line, type:. pgfplots pgfplots - A TeX package to draw normal and/or logarithmic plots directly in TeX in two and three di. Its so easy to do it in excel, but i would like to learn it to do in LaTex. Using Google products, like Google Docs, at work or school? Try powerful tips, tutorials, and templates. Select the number of main events, branch events and then enter a label and a probability for each event. , Cary, NC. Grapher: A built-in equation generator for OS X. The generator will provide you with the required CSS styles that you need to include in order to position the block elements correctly. The idea behind the minipage command is that within an existing page "built in" an additional page. In the preamble of your $$\LaTeX$$ file, add \usepackage{diagrams-latex} \usepackage{graphicx} Note inclusion of the graphicx package is currently required if you are using the PostScript or Cairo backends. Make your own quadrille, graph, hex, etc. Is there a specific reason you need to graph the function within LaTeX? wouldn't it be better to use something like R or matlab to generate a pdf that you can then \includegraphics? This will generally speed up compilation, and graphs thus generated are probably more customisable and so on. The creators, @laughinghan and @jneen, used LaTeX for projects together, but struggled to collaborate online once they were apart. Line chart/plot maker. R includes a powerful and flexible system for creating dynamic reports and reproducible research using LaTeX. Activate the graph to which you want to add an equation (Graph1 in the example OPJ). math mode, inline math mode, display math mode, opening a saved file. If your graph is a pdf file, you'll need to compile with pdflatex. Also see Yifan's gallery of large graphs, all generated with the sfdp layout engine, but colorized by postprocessing the PostScript files. The Basics. You can purchase a license here: Buy Detexify for Mac. The docstrings include educational information about each named graph with the hopes that this class can be used as a reference. Open the App Gallery and click on the LaTeX icon to open the LaTeX Equation Editor. This is an exploration for Advanced Algebra or Precalculus teachers who have introduced their students to the basic sine and cosine graphs and now want their students to explore how changes to the equations affect the graphs. For what it is worth, I recommend:. Don’t enter equation environment commands such as or $…$. Create a Plugin. , NIPS 2015). The nodes of the graph can be made hyperlinks as it is demonstrated in the sample project. Histogram maker online. So, if you happen to need text only table, e. While Calc saves spreadsheets in its native Open Document Format (. Free to get started!. If you are looking for a pure WYSIWYG vector graphics editor and don't care at all about Tikz/Latex, you might be better off using a program dedicated to that purpose, like Inkscape. Oct 07, 2017 · Insert an image in LaTeX - Adding a figure or picture Learn how to insert images and caption them. The RStudio Compile PDF command typesets the current TeX or Rnw source file into a PDF. Anyway, sometimes is necessary to have more control over the layout of the document; and for this reason in this article is explained how to insert line breaks, page breaks and arbitrary blank spaces. Learn exactly what happened in this chapter, scene, or section of Graphing Equations and what it means. 2010) Here is another candidate for the best editor in TeX - Asymptote (asymptote. Open an example to learn how to place figures in the document Overleaf. The Ipe extensible drawing editor is a free vector graphics editor for creating figures in PDF or EPS format. GanttProject is free. Further customization (e. TikZiT is a super simple GUI editor for graphs and string diagrams. The Equation Editor is accessible within the HTML Editor, which enables users to insert mathematical and statistical equations into an HTML page. I used it frequently until I upgraded to Office 2007 and the plug-in quit working. thus adjusting the coordinates and the equation. Mathgen Randomly generated mathematics research papers! About | Buy a book | Get the code | Blog | SCIgen. Nov 01, 2013 · See the link in my last for what works with what. Using LATEX for report writing Hans Fangohr Additional information for SESG1009/SESA2009 Contents 1 Introduction 3 2 Including ﬁgures 3 2. If you are used to LaTeX, you will already know that this is the setting for the base font. In the preamble of your $$\LaTeX$$ file, add \usepackage{diagrams-latex} \usepackage{graphicx} Note inclusion of the graphicx package is currently required if you are using the PostScript or Cairo backends. Input the complex binomial you would like to graph on the complex plane. Several are described here. This graph repeats every 6. For more information on GraphSketch (how it works, etc. Create diagrams manually, or import your external data for analysis. This online tool allows you to easily create HTML tables with the desired settings. 편집기에서 제공하는 많은 종류의 수식들을 이용하여 버튼 클릭만으로도 원하는 수식을 만들수 있습니다. Create normal/logarithmic plots in two and three dimensions for LaTeX/TeX/ConTeXt PGFPlots draws high--quality function plots in normal or logarithmic scaling with a user-friendly interface directly in TeX. For almost any numerical data set, there is a graph type that is appropriate for representing it. In fact, the key to understanding Piecewise-Defined Functions is to focus on their domain restrictions. Note that the script E stands for emf. js, and webgl, no plugins or downloads are required. In R, the circlize package is the best option to build it. (If there are any errors in your file of commands, you will be given a message which is usually impossible to interpret. Best of all: I didn't use anything which is not in LaTeX ☺ (Well, the generation of the CSV-file doesn't count. To put a second plot next to the first one declare a new tikzpicture environment. If you have to do several of these graphs at a time on blank graphs, use the Polar Circle Graph Paper or the Polar Plane Graph Paper. tex and the typesetting program will run on your file of commands, producing a file ending in. Julio Guzman, Sr. Result Plot of the birthday paradox LaTeX-Code. If we want to graph the line y = -2, all we need to do is plot all the points that have a y-coordinate of -2 and connect them, sort of like connect the dots. yEd is a feature rich editor for hierarchical diagrams and flow charts. You can draw more than one functions in a coordinate system. Create rich and colorful charts. It's syntax can be somewhat overwhelming at the beginning. LaTeX (/ ˈ l ɑː t ɛ x / LAH-tekh or / ˈ l eɪ t ɛ x / LAY-tekh) is a document preparation system. We use revenue from ads and paid downloads to make GanttProject better and provide you with fast and reliable web site and download service. For the following demo we used the latest release for GNU/Linux that was available at the time (yEd-3. To produce (horizontal) blank space within a paragraph, use \hspace, followed by the length of the blank space enclosed within braces. 2010) Here is another candidate for the best editor in TeX - Asymptote (asymptote. --Graph of the output of a simple dc generator. math mode, inline math mode, display math mode, opening a saved file. It's also possible to export images in PNG, LaTeX, EPS, SVG. So, if you happen to need text only table, e. I just wanted to include such an example for physicists who might need to plot results of experiments). Open an example to learn how to place figures in the document Overleaf. SPSS makes it so easy to copy. More information can be found in Ref. underlying graph, reusing the already established tree-based sub-drawing of the hyperarc as far as possible. , of the PDF produced by the LaTeX compiler when fed with the code on the left.


text:
# Describing the universal covering map for the twice punctured complex plane

As is well known, the universal covering space of the punctured complex plane is the complex plane itself, and the cover is given by the exponential map.

In a sense, this shows that the logarithm has the worst monodromy possible, given that it has only one singularity in the complex plane. Hence we can easily visualise the covering map as given by the Riemann surface corresponding to log (given by analytic continuation, say).

Seeing how fundamental the exponential and logarithm are, I was wondering how come I don't know of anything about the case when two points are removed from the complex plane.

My main question is as follows: how can I find a function whose monodromy corresponds to the universal cover of the twice punctured complex plane (say ℂ∖{0,1}), in the same way as the monodromy of log corresponds to the universal cover of the punctured plane.

For example, one might want to try f(*z*) = log(*z*) + log(*z*-1) but the corresponding Riemann surface is easily seen to have an abelian group of deck transformations, when it should be F2.

The most help so far has been looking about the Riemann-Hilbert problem; it is possible to write down a linear ordinary differential equation of order 2 that has the required monodromy group.
Only trouble is that this does not show how to explicitly do it: I started with a faithful representation of the fundamental group (of the twice punctured complex plane) in GL(2,ℂ) (in fact corresponding matrices in SL(2,ℤ) are easy to produce), but the calculations quickly got out of hand.

My number one hope would be something involving the hypergeometric function 2F1 seeing as this solves in general second order linear differential equations with 3 regular singular points (for 2F1 the singular points are 0, 1 and ∞, but we can move this with Möbius transformations), but I was really hoping for something much more explicit, especially seeing as a lot of parameters seem to not produce the correct monodromy. Especially knowing that even though the differential equation has the correct monodromy, the solutions might not.

I'd be happy to hear about any information anyone has relating to analytical descriptions of this universal cover, I was quite surprised to see how little there is written about it.
Bonus points for anything that also works for more points removed, but seeing how complicated this seems to be for only two removed points, I'm not hoping much (knowing that starting with 3 singular points (+∞), many complicated phenomena appear).

Others have already given a satisfactory qualitative description as a modular function under a suitable congruence group. Since the quotient in question is necessarily genus zero, there are explicit formulas for such functions.

I was mistaken in my comment to Tyler's answer. The function I provided there is invariant under a larger group than the one we want, and yields the universal cover for the complex plane with one and a half punctures.

The Dedekind eta product eta(z/2)^8/eta(2z)^8 is not only invariant under Gamma(2) (= F2), but it maps H/Gamma(2) bijectively to the twice punctured plane. You will have to post-compose with a suitable affine transformation to move the punctures to zero and one. An alternative description is: eta(z)^24/(eta(z/2)^8 eta(2z)^16).

This function arises in monstrous moonshine: eta(z)^8/eta(4z)^8 + 8 is the graded character of an element of order four, in conjugacy class 4C in the monster, acting on the monster vertex algebra (a graded vector space with some extra structure). It is invariant under Gamma0(4), which is what you get by conjugating Gamma(2) under the z -> 2z map.

Other elements of the monster yield functions that act as universal covers for planes with specific puncture placement and orbifold behavior. For the general case of more than 2 punctures, you have to use more geometric methods, due to nontrivial moduli. I think you idea of using hypergeometric functions is on the right track. I think Yoshida's book, Hypergeometric Functions, My Love has a few more cases worked out.

The function you want is, as David mentioned, a modular function. It appears in almost any proof of the Little Picard Theorem (I believe that Ahlfors' text on complex analysis has some discussion) and can be constructed using abstract nonsense by finding a conformal mapping of the domain

1 > Re(z) > 0, |z-1/2| > 1/2

onto the upper half-plane and then bouncing it around using Schwarz reflection. More concretely the group of Gamma(2) of 2x2 integer matrices that reduce to zero mod 2 acts freely (except for minus the identity matrix) on the upper half-plane by linear fractional transformations, and this gives an explicit action of the free group on two generators by deck transformations.

This leads into modular functions and forms which are, to put it mildly, well-studied.

Most introductory texts on modular forms usually have a thorough discussion and proof of this covering - for example, Goro Shimura's "Introduction to the Arithmetic Theory of Automorphic Functions".

EDIT: whoops, if I'm going to say "Schwarz reflection" I want half of the fundamental domain.

• Aha! That's what screwed me up. I had the mental image of half the fundamental domain in my head, and that lead me to the wrong group. By the way, if someone would vote Tyler's answer up, I'd appreciate it. He definitely deserves to be above me, since he got the details right and I didn't. Oct 17, 2009 at 5:18
• Very nice. I believe the correct modular function is called the Lambda modular function; it is indeed described in Ahlfors' book on complex analysis. Does this idea work for free groups on more generators? I don't know much about the algebraic properties of congruence subgroups, but it definitely seems plausible as the upper half plane is going to be the universal cover again. Although the fundamental domains are going to look pretty complicated. Is there a computer package or something that deals with this (algebra of congruence subgroups and plots of corresponding fundamental domains)? Oct 17, 2009 at 15:39
• Incidentally if you use the z -> 2z map to replace \Gamma(2) with the isomorphic group \Gamma_0(4), the map is given by the trace of an element of order 4 (conjugacy class 4A) acting on the monster vertex algebra. It can be expressed (up to a constant shift of 24) as \Delta(2z)^2/(\Delta(z)\Delta(4z)). If you want covering maps for free groups with more generators, you will have to account for moduli, i.e., the maps aren't necessarily taken to each other by Mobius transformations. Oct 17, 2009 at 23:30
• I think MAGMA and SAGE can work with congruence subgroups. H. Verrill has written a java program that draws pictures of fundamental domains. Oct 17, 2009 at 23:35

I am sorry to revive such an old topic. But it really needs to be mentioned that this universal cover of the twice punctured plane was constructed by PICARD, and as one of the comments says, this was used in the proof of little Picard (and also big Picard). This is one of Picard's most famous constructions, so you will excuse my emphasizing it. This is explicitly constructed in Ahlfors' book on complex analysis.

The function you want is a modular function. The universal cover of C \ {0,1} is the upper half plane; a fundamental domain is { z : 0 < Re(z) < 1, |z-1/2| > 1/2 }. This is also a fundamental domain for the action of \Gamma_0(2) on the upper halfplane, where \Gamma_0(2) is the group of integer matrices whose lower left hand entry is even. There is a standard construction of a modular function which has this symmetry; but I'm forgetting the terminology. Scott will probably come along soon and fill in the details I'm missing.

A good reference for this sort of thing is Conformal Mapping, by Zeev Nehari.

• Isn't the fundamental domain -1 < Re(z) < 1, |z - 1/2| > 1/2, |z + 1/2| > 1/2, using Gamma(2) level structures (integer matrices which are the identity mod 2)? Oct 17, 2009 at 4:03
• You are right, I am wrong. It is $\Gamma(2)$ which is isomorphic to the free group on 2 generators, not $\Gamma_0(2)$. If you want to write an answer explaining in more detail, I'll gladly vote it up. Oct 17, 2009 at 4:12
• Ok good, I was getting worried, but didn't dare to say anything. I started thinking of modular forms as soon as I realised the covering space was the upper half plane, but I didn't really see much point in it. I tried coming up with holomorphic modular functions never attaining 0 or 1, but that obviously failed. I'm very interested in hearing about how it goes in this case though; I love modular forms! Oct 17, 2009 at 4:43

I think you're looking for polylogarithms. It's not just one function you're after; the fundamental group of the once-punctured plane is cyclic and doesn't have a ton of interesting representations, while the fundamental group of the twice-punctured plane is free of rank two and thus has a lot more beef.

Note, though, that the polylogarithms all have unipotent monodromy; you should think of them as seeing, not quite the full fundamental group of C - 0,1, but the pro-unipotent algebraic envelope of this. But as we learned from Deligne's monograph on the fundamental group of P^1 minus three points, there's a huge amount of content even here.

Not sure what reading to recommend for an introduction to this story, except for Deligne's paper itself, but if you search for things containing some combination of polylogarithm, multizeta, and iterated integral you'll find tons; among these, find something that suits your taste....


text:
• Create Account

## ANSI C - pixel perfect collision

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

12 replies to this topic

### #1DrNicholas  Members

130
Like
0Likes
Like

Posted 07 June 2014 - 02:11 PM

Hello,

I making this topic because someone told me in the other threads to just make it a new one. First I am going to post my code and then talk.

typedef struct HITBOX
{
/* This is for the hitbox's dimensions */
int x, y;
int w, h;
/* This is for pixel perfect collision */
int surface_n;
int surface_e;
int surface_s;
int surface_w;
} HITBOX;

int collision( HITBOX A, HITBOX B ) {
int a_left, a_right, a_top, a_bottom;
a_left = A.x;
a_right = A.x + A.w;
a_top = A.y;
a_bottom = A.y + A.h;

int b_left, b_right, b_top, b_bottom;
b_left = B.x;
b_right = B.x + B.w;
b_top = B.y;
b_bottom = B.y + B.h;

if( a_bottom <= b_top || a_top >= b_bottom || a_right <= b_left || a_left >= b_right ) {
return false;
} else {
return true;
}
}
int t = 0;
HITBOX TILE;
int world_collision( HITBOX A ) {
for( t = 0; t < total_tiles; t++ ) {
TILE.x = levelbox[t].x;
TILE.y = levelbox[t].y;
TILE.w = levelbox[t].w;
TILE.h = levelbox[t].h;
if( collision( A, TILE ) == true ) {
A.surface_n = TILE.y;
A.surface_e = TILE.x + TILE.w;
A.surface_s = TILE.y + TILE.h;
A.surface_w = TILE.x;
return true;
}
}
return false;
}

int collision_lua( lua_State *L ) {
if( strcmp(lua_tostring(L, 1), "world") == 0 )
return world_collision( player.hitbox );
return 0;
}

My collisions technically are pixel perfect, but because the game object inside the lua file moves at a float (although I have done the rounding method to prevent that, I still get the player hovering or inside by 1/2 pixels time to time). I came up with the surface variables inside HITBOX so that when there is a collision (with the level), the hitbox will touch that surface, and i won't see any floating/sinking. The problem is I can't figure out how to return those surface variables easily. I was asking some people, and they told me to do

int world_collision( HITBOX *A ) {
for( t = 0; t < total_tiles; t++ ) {
TILE.x = levelbox[t].x;
TILE.y = levelbox[t].y;
TILE.w = levelbox[t].w;
TILE.h = levelbox[t].h;
if( collision( A, TILE ) == true ) {
A->surface_n = TILE.y;
A->surface_e = TILE.x + TILE.w;
A->surface_s = TILE.y + TILE.h;
A->surface_w = TILE.x;
return true;
}
}
return false;
}

I will get the errors:

actor.c: In function 'world_collision':
actor.c:72:3: error: incompatible type for argument 1 of 'collision'
actor.c:45:5: note: expected 'HITBOX' but argument is of type 'struct HITBOX *'
actor.c: In function 'collision_lua':
actor.c:104:3: error: incompatible type for argument 1 of 'world_collision'
actor.c:66:5: note: expected 'struct HITBOX *' but argument is of type 'HITBOX'

although if I change one line to:

if( collision( *A, TILE ) == true ) {

I just get the errors in function 'collision_lua'. If I do:

return world_collision( *player.hitbox );

I will get the issue:

actor.c: In function 'collision_lua':
actor.c:104:27: error: invalid type argument of unary '*' (have 'HITBOX')

Does anybody have any ideas what thing needs changed, and willing to show me? Thanks

### #2rip-off  Moderators

10730
Like
0Likes
Like

Posted 07 June 2014 - 04:04 PM

The correct code to pass a pointer to the player's hitbox would be:
world_collision( &player.hitbox );

I would also note that "t" and TILE" could be local variables in "world_collision":
int world_collision( HITBOX *hitbox ) {
for(int t = 0; t < total_tiles; t++ ) {
HITBOX tile;
tile.x = levelbox[t].x;
tile.y = levelbox[t].y;
tile.w = levelbox[t].w;
tile.h = levelbox[t].h;
if( collision( *hitbox , tile) == true ) {
hitbox->surface_n = tile.y;
hitbox->surface_e = tile.x + tile.w;
hitbox->surface_s = tile.y + tile.h;
hitbox->surface_w = tile.x;
return true;
}
}
return false;
}

Code that uses global variables is generally harder to understand and change than code with local variables, so this would be preferred. Here, it is obvious that no other code depends on the values of "t" and "TILE" being set by this function.

I would also note that you don't seem to have a consistent naming scheme for variables. In some cases you use lowercase, such as a_left, others you use TILE and A. While the exact scheme is not important, being consistent makes code easier to understand.

### #3DrNicholas  Members

130
Like
0Likes
Like

Posted 07 June 2014 - 06:05 PM

ANSI C does not allow you to initialize a variable inside a for statement, or at the very least my GCC compiler won't. Will try defining TILE inside it though, doesn't that make a bunch of them or are they cleared from memory?

EDIT:

thanks, it works

Edited by DrNicholas, 07 June 2014 - 06:20 PM.

### #4LennyLen  Members

5414
Like
0Likes
Like

Posted 07 June 2014 - 08:46 PM

Also, just for the record:  What you are doing is NOT pixel perfect collision, it is bounding box collision.  Unless every object in your world is a rectangle.

### #5rip-off  Moderators

10730
Like
2Likes
Like

Posted 08 June 2014 - 05:21 AM

ANSI C does not allow you to initialize a variable inside a for statement, or at the very least my GCC compiler won't.

It should if you specify -std=c99. If you don't want to do this, you can declare it just before the loop:
int world_collision( HITBOX *hitbox ) {
int t;
for(t = 0; t < total_tiles; t++ ) {
HITBOX tile;
tile.x = levelbox[t].x;
tile.y = levelbox[t].y;
tile.w = levelbox[t].w;
tile.h = levelbox[t].h;
if( collision( *hitbox , tile) == true ) {
hitbox->surface_n = tile.y;
hitbox->surface_e = tile.x + tile.w;
hitbox->surface_s = tile.y + tile.h;
hitbox->surface_w = tile.x;
return true;
}
}
return false;
}

Will try defining TILE inside it though, doesn't that make a bunch of them or are they cleared from memory?

The necessary memory will be allocate when the function is called and deallocated when it returns, so no it doesn't have any drawbacks. It is only manual memory allocation (such as malloc/free or external library calls) that you have to worry about.

### #6Bacterius  Members

13102
Like
0Likes
Like

Posted 08 June 2014 - 05:24 AM

It should if you specify -std=c99.

That's not ANSI C anymore though (admittedly GCC's default setting isn't either, but some gnu89 variant).

“If I understand the standard right it is legal and safe to do this but the resulting value could be anything.”

### #7Chris_F  Members

3018
Like
1Likes
Like

Posted 08 June 2014 - 05:37 AM

It should if you specify -std=c99.

That's not ANSI C anymore though (admittedly GCC's default setting isn't either, but some gnu89 variant).

Why on earth would anyone be using strictly ANSI C in 2014?   Stuck with Turbo C 2.0 or something?

### #8Bacterius  Members

13102
Like
0Likes
Like

Posted 08 June 2014 - 05:41 AM

It should if you specify -std=c99.

That's not ANSI C anymore though (admittedly GCC's default setting isn't either, but some gnu89 variant).

Why on earth would anyone be using strictly ANSI C in 2014?   Stuck with Turbo C 2.0 or something?

The thread title does contain "ANSI C"

“If I understand the standard right it is legal and safe to do this but the resulting value could be anything.”

### #9Bregma  Members

8320
Like
0Likes
Like

Posted 08 June 2014 - 05:43 AM

That's not ANSI C anymore though (admittedly GCC's default setting isn't either, but some gnu89 variant).

Well, given the phrase "ANSI C" has no distinct meaning, that's a pretty vague statement.

GCC is pretty strict about adhering to the various standards when you explicitly set them.  Using -std=c89 you get ISO C 89, using -std=c99 you get ISO C 99, using -std=c11 you get ISO C 2011.  If you want the gnu89 variant, you need to specify -std=gnu89.

Stephen M. Webb
Professional Free Software Developer

### #10Bacterius  Members

13102
Like
0Likes
Like

Posted 08 June 2014 - 05:50 AM

Not sure what your point is, Bregma, ANSI C can be a couple of things but it certainly isn't C99. And I did say "default", and by default GCC does currently adhere to gnu90 (not gnu89, my mistake) as pointed out in the documentation. Obviously if you ask for a specific standard or dialect you'll get that. Anyway let's not derail the thread further, was just pointing out that the OP might want to stick to ANSI C one way or the other as per the thread title.

Edited by Bacterius, 08 June 2014 - 05:51 AM.

“If I understand the standard right it is legal and safe to do this but the resulting value could be anything.”

### #11DrNicholas  Members

130
Like
0Likes
Like

Posted 08 June 2014 - 11:13 PM

I use ANSI C because the C Programming Language only covers ANSI C, and http://clc-wiki.net/wiki/Portability_and_ANSI_C_Compliance

So I may be cut out of some nicer features, but the program still get's done nontheless.

### #12Álvaro  Members

20266
Like
0Likes
Like

Posted 08 June 2014 - 11:40 PM

The problem is that you are saying
typedef struct HITBOX {...] HITBOX;
typedef struct {...} HITBOX;

### #13Olof Hedman  Members

5703
Like
0Likes
Like

Posted 09 June 2014 - 04:03 AM

http://clc-wiki.net/wiki/Portability_and_ANSI_C_Compliance

And as usual, I'm left scratching my head. Sure, portable code is great, and all those arguments are fine, but what has Ansi C to do with it?

Wouldn't my code be just as portable, and I have all those advantages, if I simply wrote it for any of the other standards that have free compilers for pretty much anything?

Like... C++11 or something?

Sorry for the OT, and I'm not bashing your choice of language, I just... don't understand I guess...

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.


text:
# Re: Questions from the example markup

• To: Ron Whitney <RFW@MATH.AMS.ORG>, w3c-math-erb@w3.org
• Subject: Re: Questions from the example markup
• From: ion@MATH.AMS.ORG (Patrick D. F. Ion)
• Date: Mon, 08 Jul 1996 09:01:06 -0400
• From ion@MATH.AMS.ORG Mon Jul 8 08: 57:37 1996
• Message-id: <v02130509ae06ab4464bf@[130.44.25.36]>
• X-Sender: ion@mr4.mr.ams.org

I wish to applaud Ron, and then Ka-Ping, for marking up an example fully.
I think it helps a great deal to have concrete ones to consider.

The most striking thing to me about the markup done is the extent to which
it resembles the TeX solution that is both widely proposed and opposed.
That said, I think that it also suggests the point that either you do just
enough markup for presentation purposes, or you have to do a lot more.  A
partial enhancement is fraught with opportunities for confusion.

One simple example of what worries me is provided by the case where Ron
carefully put in a "&FunctionApplication;" because he noted that \div  was
an operator, and specially marked <mo>(ν\cdot\nabla)</mo>, but did not
make special arrangements in the use of -∇p.  The ∇ is as much
an operator as \div or \curl (∇ is notation for the gradient, \grad,
and
\div = \grad \cdot and \curl = \grad \cross --- in an informal manner of
speaking).  It seems there are lots of possibilities for only partial
markup and hanging ambiguities inherent in trying to distinguish, in ways
that authors and editors are unfamiliar with, parts of the semantics of
math notations.

When it comes to the naming of classical objects that I mentioned, I was
only starting to point out that it seemed natural.  Indeed you'll find that
authors frequently adopt macros for them, in part because their
presentation is often done specially (bold, blackboard or roman, say).  I
don't actually see it as a bad idea to have a certain fairly large list of
classical objects with agreed and documented definitions as part of a
standard.  If you think of Asian languages then you can see that dealing
with a reasobaly large name space for ideographs, which all have widely
agreed meanings, is not an unsolvable problem.

A collection of classical items for math would not be all that large.
Actually I'm not proposing that here, but a small basic collection, say,
including

naturals
integers
rationals
reals
complexes
quaternions
octonions

Classical Groups:
GL, SL, U, SU, O, SO, SP, Osp,

Special functions:
Hermite, Legendre, Bessel (I, J, K, ...), ...
Hahn, Charlier, Krawtchouk, ...

Racah, Clebsch-Gordan

Probability distributions:
Gauss or normal, student, ....

...

wouldn't be that bad to assemble.  In any case we do need to provide, I would
suggest, a capability that _allows_ authors to use such constructions as
these easily and, if at all possible, unambiguously.  Computer algebra
systems already have large collections of common-place objects identified,
as do handbooks and tables.

However, it could well be that all this is rather at the level of the
planned "macro capability" rather than being of importance at this stage in
the deliberations.

I do not at all disagree now with the goals that Ron reiterated:
(a) render to various sensory media in such a way that a
"knowlegeable" human can interpret the notation properly
(b) allow for paths by which authors or others may upgrade the notation
to one with fuller semantical attributes

It has to be true that we are intending that math notation be read by
people who know something of math: advanced documents are to be read by
specialised readers.   It is just when it is to be read by machinery that
we are more careful.  As the example quoted by Fateman to the DLI list
showed, even what we think is very well-specified may well be wrong or
meaningless.  The more complicated notation or markup is the easier it is
to convince oneself that it is probably right because a machine says so.
That is a problem in teaching and it's going to be a problem with HTML/Math
too.

Patrick

>
>It's unclear to me whether we have a strong(ish?) disagreement here.
>I'm certainly not in favor of *requiring* that authors name the
>well-known objects of their papers.  This would be too much to expect,
>in my opinion (no one expects the analogue in standard text, I imagine
>a vast menuing system (probably equivalent to ZF) to classify "all"
>objects, and do we expect to name the various non-standard models?  --
>where do we stop?)
>
>I do want to define an HTML-Math wherein authors are able to specify
>such things if they wish.  My view of the project to date has been
>that we are trying to define a language which will (a) render to the
>various sensory media in such a way that a "knowlegeable" human can
>interpret the notation properly, and (b) allow for paths by which
>authors or other third parties may upgrade the notation to one
>with fuller semantical attributes.  If this group has widely
>diverging opinions on the degree to which semantics must be carried,
>we'll probably have difficulty settling on a standard.
>
>But do we differ in this?  Maybe not.  Ping's statement
>
>> It makes the most sense for the conceptual entity "the complex numbers"
>> to be represented by a separate named entity.  It is certainly *not* a
>> variable named "C" in any sense -- and you would need it to be distinguished
>> for it to be properly rendered to speech.
>
>is much stronger than I would have said myself.  There actually is a
>good sense (a formalist or nominalist sense) in which "the complex
>numbers" are adequately represented by "C", and I'm fairly certain
>that Raman reliably distinguishes this "C", as do those who read the
>"C", by context.
>
>
>-Ron