poor ). this is just makes rigorous the idea of randomly choosing unordered sets of points from a sigma - finite measure space $ ( e, \ mathcal { e }, \ mu ) $. technically, it can be defined as a set of nonnegative integer - valued random variables $ \ { n ( a ) \ colon a \ in \ mathcal { e } \ } $ counting the number of points chosen from each subset a, such that $ n ( a ) $ has the poisson distribution of rate $ \ mu ( a ) $ and $ n ( a _ 1 ), n ( a _ 2 ), \ ldots $ are independent for pairwise disjoint sets $ a _ 1, a _ 2, \ ldots $. by definition, this satisfies $ $ \ begin { array } { } \ mathbb { p } ( n ( a ) = n ) = \ dfrac { \ mu ( a ) ^ n } { n! } e ^ { - \ mu ( a ) }. & & ( 1 ) \ end { array } $ $ the points $ t _ 1, t _ 2, \ ldots $ above defining the homogeneous poisson process also define a poisson random measure with respect to the lebesgue measure $ ( \ mathbb { r } \ _ +, { \ cal b }, \ lambda ) $. once you forget about the order in which they were defined and just regard them as a random set that is, which i think is the source of the $ n! $. if you think about the probability of $ t _ { n + 1 } $ being in a small interval $ ( t, t + \ delta t ) $ then this is just the same as having $ n ( [ 0, t ] ) = n $ and $ n ( ( t, t + \ delta t ) ) = 1 $, which has probability $ \ dfrac { t ^ n } { n! } e ^ { - t } \ delta t $. so, how can we choose points at random so that each small set $ \ delta a $ has probability $ \ mu ( \ delta a ) $ of containing a point, and why does $ ( 1 ) $ pop out? i'm imagining a hopeless darts player randomly throwing darts about and, purely by luck, hitting the board with some of them. consider throwing a very large number $ n \ gg1 $ of darts, independently,


so that each one only has probability $ \ mu ( a ) / n $ of hitting the set, and is distributed according to the probability distribution $ \ mu / \ mu ( a ) $. this is consistent, at least, if you think about the probability of hitting a subset $ b \ subseteq a $. the probability of missing with all of them is $ ( 1 - \ mu ( a ) / n ) ^ n = e ^ { - \ mu ( a ) } $. this is a multiplicative function due to independence of the number hitting disjoint sets. to get the probability of one dart hitting the set, multiply by $ \ mu ( a ) $ ( one factor of $ \ mu ( a ) / n $ for each individual dart, multiplied by $ n $ because there are $ n $ of them ). for $ n $ darts, we multiply by $ \ mu ( a ) $ $ n $ times, for picking $ n $ darts to hit, then divide by $ n! $ because we have over - counted the subsets of size $ n $ by this factor ( due to counting all $ n! $ ways of ordering them ). this gives $ ( 1 ) $. i think this argument can probably be cleaned up a bit. getting back to choosing points randomly on the positive reals, this gives a probability of $ \ dfrac { t ^ n } { n! } e ^ { - t } dt $ of picking $ n $ in the interval $ [ 0, t ] $ and one in $ ( t, t + dt ) $. if we sort them in order as $ t _ 1 \ lt t _ 2 \ lt \ cdots $ then $ \ mathbb { p } ( t _ 1 \ gt t ) = e ^ { - t } $, so it is exponentially distributed. conditional on this, $ t _ 2, t _ 3, \ ldots $ are chosen randomly from $ [ t _ 1, \ infty ) $, so we see that the differences $ t _ { i + 1 } - t _ { i } $ are independent and identically distributed. why is $ \ dfrac { t ^ n } { n! } e ^ { - t } $ maximized at $ t = n $? i'm not sure why the mode should be a simple property of a distribution. it doesn't even exist except for unimodal distributions. as


$ t _ { n + 1 } $ is the sum of $ n + 1 $ iid random variables of mean one, the law of large numbers suggests that it should be peaked approximately around $ n $. the central limit theorem goes further, and gives $ \ dfrac { t ^ n } { n! } e ^ { - t } \ approx \ dfrac { 1 } { \ sqrt { 2 \ pi n } } e ^ { - ( t - n ) ^ 2 / { 2n } } $. stirling's formula is just this evaluated at $ t = n $. what's this to do with tate's thesis? i don't know, and i haven't read it ( but intend to ), but have a vague idea of what it's about. if there is anything to do with it, maybe it is something to do with the fact that we are relating the sums of independent random variables $ s _ 1 + \ cdots + s _ n $ distributed with respect to the haar measure on the multiplicative group $ \ mathbb { r } _ + $ ( edit : oops, that's not true, the multiplicative haar measure has cumulative distribution given by $ \ log $, not $ \ exp $ ) with randomly chosen sets according to the haar measure on the additive group $ \ mathbb { r } $.


i think the best method or combination of methods will depend on aspects of the data that might vary from one dataset to another. e. g. the type, size, and frequency of structural variants, the number snvs, the quality of the reference, contaminants or other issues ( e. g. read quality, sequencing errors ) etc. for that reason, i'd take two approaches : try a lot of methods, and look at their overlap validate a subset of calls from different methods by wet lab experiments - in the end this is the only real way of knowing the accuracy for a particular case.


first of all, it depends on how the tap water was treated before it was piped to your house. in most cases, the water was chlorinated to remove microorganisms. by the time the water arrives at your house, there is very little ( if any ) chlorine left in the water. when you fill you container, there is likely to be some microorganisms present ( either in the container or in the water ). in a nutrient rich environment, you can see colonies within 3 days. for tap water, it will probably take 2 to 3 weeks. but that doesn't mean that the small amount of growth doesn't produce bad tasting compounds ( acetic acid, urea, etc. ). btw nicolau saker neto, cold water dissolves more gas than hot water. watch when you heat water on your stove. before it boils, you will see gas bubbles that form on the bottom and go to the surface ( dissolved gases ) and bubbles that disappear while rising to the surface ( water vapor ).


the frequency resolution is dependent on the relationship between the fft length and the sampling rate of the input signal. if we collect 8192 samples for the fft then we will have : $ $ \ frac { 8192 \ \ text { samples } } { 2 } = 4096 \ \, \ text { fft bins } $ $ if our sampling rate is 10 khz, then the nyquist - shannon sampling theorem says that our signal can contain frequency content up to 5 khz. then, our frequency bin resolution is : $ $ \ frac { 5 \ \ text { khz } } { 4096 \ \, \ text { fft bins } } \ simeq \ frac { 1. 22 \ \ text { hz } } { \ text { bin } } $ $ this is may be the easier way to explain it conceptually but simplified : your bin resolution is just \ $ \ frac { f _ { samp } } { n } \ $, where \ $ f _ { samp } \ $ is the input signal's sampling rate and \ $ n \ $ is the number of fft points used ( sample length ). we can see from the above that to get smaller fft bins we can either run a longer fft ( that is, take more samples at the same rate before running the fft ) or decrease our sampling rate. the catch : there is always a trade - off between temporal resolution and frequency resolution. in the example above, we need to collect 8192 samples before we can run the fft, which when sampling at 10 khz takes 0. 82 seconds. if we tried to get smaller fft bins by running a longer fft it would take even longer to collect the needed samples. that may be ok, it may not be. the important point is that at a fixed sampling rate, increasing frequency resolution decreases temporal resolution. that is the more accurate your measurement in the frequency domain, the less accurate you can be in the time domain. you effectively lose all time information inside the fft length. in this example, if a 1999 hz tone starts and stops in the first half of the 8192 sample fft and a 2002 hz tone plays in the second half of the window, we would see both, but they would appear to have occurred at the same time. you also have to consider processing time. a 8192 point fft takes some decent processing power. a way to reduce this need


is to reduce the sampling rate, which is the second way to increase frequency resolution. in your example, if you drop your sampling rate to something like 4096 hz, then you only need a 4096 point fft to achieve 1 hz bins and can still resolve a 2 khz signal. this reduces the fft bin size, but also reduces the bandwidth of the signal. ultimately with an fft there will always be a trade - off between frequency resolution and time resolution. you have to perform a bit of a balancing act to reach all goals.


the obvious answer is that different people wrote them. it's fairly common in bioinformatics for people with a computer science background to get frustrated with existing tools and create their own alternative tool ( rather than improving an existing tool ). over time, tools with similar initial aims will have popular functionality implemented in them ( and eventually have bugs fixed ), such that it matters less which particular tool is used for common methods. here's my impression of the tools : samtools - - originally written by heng li ( who also wrote bwa ). the people who now work on samtools also maintain the alignment file format specification for sam, bam, and cram, so any new file format features are likely to be implemented in samtools first. bamtools - - this looks like it was written by derek barnett, erik garrison, gabor marth, michael stromberg to mirror the samtools toolkit, but using c + + instead of c picard - - java tools written by the broad institute for manipulating bam / sam files. being written in java makes it easier to port to other operating systems, so it may work better on windows systems. i'm more familiar with picard being used at a filtering level ( e. g. removing pcr duplicates ), and for statistical analysis, but it links in with the java hts library from samtools, so probably shares a lot of the functionality. sambamba - - a gpl2 - licensed toolkit written in the d programming language ( presumably by artem tarasov and pjotr prins ). i haven't used it ( and don't know people who have used it ), but the github page suggests " for almost 5 years the main advantage over samtools was parallelized bam reading. finally in march 2017 samtools 1. 4 was released, reaching parity on this. " biobambam - - written by german tischler in c + +. i also have no experience with this toolkit. this seems to have some multithreading capability, but is otherwise similar to other toolkits.


the choice of $ k = 10 $ is somewhat arbitrary. here's how i decide $ k $ : first of all, in order to lower the variance of the cv result, you can and should repeat / iterate the cv with new random splits. this makes the argument of high $ k $ = > more computation time largely irrelevant, as you anyways want to calculate many models. i tend to think mainly of the total number of models calculated ( in analogy to bootstrapping ). so i may decide for 100 x 10 - fold cv or 200 x 5 - fold cv. @ ogrisel already explained that usually large $ k $ mean less ( pessimistic ) bias. ( some exceptions are known particularly for $ k = n $, i. e. leave - one - out ). if possible, i use a $ k $ that is a divisor of the sample size, or the size of the groups in the sample that should be stratified. too large $ k $ mean that only a low number of sample combinations is possible, thus limiting the number of iterations that are different. for leave - one - out : $ \ binom { n } { 1 } = n = k $ different model / test sample combinations are possible. iterations don't make sense at all. e. g. $ n = 20 $ and $ k = 10 $ : $ \ binom { n = 20 } { 2 } = 190 = 19 ⋅ k $ different model / test sample combinations exist. you may consider going through all possible combinations here as 19 iterations of $ k $ - fold cv or a total of 190 models is not very much. these thoughts have more weight with small sample sizes. with more samples available $ k $ doesn't matter very much. the possible number of combinations soon becomes large enough so the ( say ) 100 iterations of 10 - fold cv do not run a great risk of being duplicates. also, more training samples usually means that you are at a flatter part of the learning curve, so the difference between the surrogate models and the " real " model trained on all $ n $ samples becomes negligible.


the following are both plausible messages, but have a completely different meaning : sos help =... - - -......... -... - -. = >... - - -......... -... - -. i am his date =... - - -......... -... - -. = >... - - -......... -... - -.


the hydrochloric acid in the stomach is already quite dilute ; its ph is in fact no less than 1. 5 so that at the extreme maximum there is only 0. 03 molar hydrochloric acid. and even that small amount is, of course, stabilized by being dissociated into solvated ions. there is just not enough stuff to react violently.


" computational scientist " is somewhat broad because it includes people who doing numerical analysis with paper / latex and proof - of - concept implementations, people writing general purpose libraries, and people developing applications that solve certain classes of problems, and end users that utilize those applications. the skills needed for these groups are different, but there is a great advantage to having some familiarity with the " full stack ". i'll describe what i think are the critical parts of this stack, people who work at that level should of course have deeper knowledge. domain knowledge ( e. g. physics and engineering background ) everyone should know the basics of the class of problems they are solving. if you work on pdes, this would mean some general familiarity with a few classes of pde ( e. g. poisson, elasticity, and incompressible and compressible navier - stokes ), especially what properties are important to capture " exactly " and what can be up to discretization error ( this informs method selection regarding local conservation and symplectic integrators ). you should know about some functionals and analysis types of interest to applications ( optimization of lift and drag, prediction of failure, parameter inversion, etc ). mathematics everyone should have some general familiarity with classes of methods relevant to their problem domain. this includes basic characteristics of sparse versus dense linear algebra, availability of " fast methods ", properties of spatial and temporal discretization techniques and how to evaluate what properties of a physical problem are needed for a discretization technique to be suitable. if you are mostly an end user, this knowledge can be very high level. software engineering and libraries some familiarity with abstraction techniques and library design is useful for almost everyone in computational science. if you work on proof - of - concept methods, this will improve the organization of your code ( making it easier for someone else to " translate " it into a robust implementation ). if you work on scientific applications, this will make your software more extensible and make it easier to interface with libraries. be defensive when developing code, such that errors are detected as early as possible and the error messages are as informative as possible. tools working with software is an important part of computational science. proficiency with your chosen language, editor support ( e. g. tags, static analysis ), and debugging tools ( debugger, valgrind ) greatly improves your development efficiency. if you work in batch environments, you should know how to submit jobs and get interactive sessions. if you work


with compiled code, a working knowledge of compilers, linkers, and build tools like make will save a lot of time. version control is essential for everyone, even if you work alone. learn git or mercurial and use it for every project. if you develop libraries, you should know the language standards reasonably completely so that you almost always write portable code the first time, otherwise you will be buried in user support requests when your code doesn't build in their funky environment. latex latex is the de - facto standard for scientific publication and collaboration. proficiency with latex is important to be able to communicate your results, collaborate on proposals, etc. scripting the creation of figures is also important for reproducibility and data provenance.


it is very hard to define a human mind with a such mathematical rigor as it is possible to define a turing machine. we still do not have a working model of a mouse brain however we have the hardware capable of simulating it. a mouse has around 4 million neurons in the cerebral cortex. a human being has 80 - 120 billion neurons ( 19 - 23 billion neocortical ). thus, you can imagine how much more research will need to be conducted in order to get a working model of a human mind. you could argue that we only need to do top - down approach and do not need to understand individual workings of every neuron. in that case you might study some non - monotonic logic, abductive reasoning, decision theory, etc. when the new theories come, more exceptions and paradoxes occur. and it seems we are nowhere close to a working model of a human mind. after taking propositional and then predicate calculus i asked my logic professor : " is there any logic that can define the whole set of human language? " he said : " how would you define the following? to see a world in a grain of sand and a heaven in a wild flower, hold infinity in the palm of your hand and eternity in an hour. if you can do it, you will become famous. " there have been debates that a human mind might be equivalent to a turing machine. however, a more interesting result would be for a human mind not to be turing - equivalent, that it would give a rise to a definition of an algorithm that is not possibly computable by a turing machine. then the church's thesis would not hold and there could possibly be a general algorithm that could solve a halting problem. until we understand more, you might find some insights in a branch of philosophy. however, no answer to your question is generally accepted.


as far as i know, lapack is the only publicly available implementation of a number of algorithms ( nonsymmetric dense eigensolver, pseudo - quadratic time symmetric eigensolver, fast jacobi svd ). most libraries that don't rely on blas + lapack tend to support very primitive operations like matrix multiplication, lu factorization, and qr decomposition. lapack contains some of the most sophisticated algorithms for dense matrix computations that i don't believe are implemented anywhere else. so to answer your questions ( at least partially ), by opting out of blas / lapack, you are typically not missing functionality ( unless the optional interface was designed so that there is no substitute implementation, which is rare ). if you wanted to do very sophisticated operations, those other libraries probably don't implement it themselves anyways. since blas can be highly tuned to your architecture, you could be missing out on huge speedups ( an order of magnitude speed difference is not unheard of ). you mention umfpack, which is for sparse matrix factorization. blas / lapack is only concerned about dense matrices. umfpack at some level needs to work on medium size dense problems, which it can do using custom implementations or by calling blas / lapack. here the difference is only in speed. if speed is of great concern, try to use a library that supports optional blas / lapack bindings, and use them in the end when you want things faster.


firstly, it's not true that you can't tell racial background from dna. you most certainly can ; it's quite possible to give fairly accurate phenotypic reconstruction of the features we choose as racial markers from dna samples alone and also possible to identify real geographic ancestral populations from suitable markers. the reason that human races aren't useful is that they're actually only looking at a couple of phenotypic markers and ( a ) these phenotypes don't map well to underlying genetics and ( b ) don't usefully model the underlying populations. the big thing that racial typing is based on is skin colour, but skin colour is controlled by only a small number of alleles. on the basis of skin colour you'd think the big division in human diversity is ( and i simplify ) between white europeans and black africans. however, there is vastly more genetic diversity within africa than there is anywhere else. two randomly chosen africans will be, on average, more diverse from each other than two randomly chosen europeans. what's more europeans are no more genetically distinct overall from a randomly chosen african than two randomly chosen africans are from each other. this makes perfectly decent sense if you consider the deep roots of diversity within africa ( where humans originally evolved ) to the more recent separation of europeans from an african sub - population. it's also worth noting that the phenotypic markers of race don't actually tell you much about underlying heredity ; for example there's a famous photo of twin daughters one of whom is completely fair skinned, the other of whom is completely dark skinned ; yet these two are sisters. this is, of course, an extreme example but it should tell you something about the usefulness of skin colour as a real genetic marker.


short answer : in my opinion, my approach would be to pull out the cds exons and run bedtools on those. a few more details : when you pull out the exons, make sure that you assign them all ids if the don't already have them assigned and record which ids " belong " to which genes. now when you get exons that overlap, you know that they are coding and you can tie them back to which genes they originate from.


corrosion resistant products, ltd., with the help of dupont, has established this source of information on what can and cannot eat teflon. here's a list : sodium and potassium metal - these reduce and defluorinate ptfe, which finds use in etching ptfe finely divided metal powders, like aluminum and and magnesium, cause ptfe to combust at high temperatures these reactions probably reduce ptfe in a manner that starts : $ $ \ ce { ( cf2cf2 ) _ { n } + 2na - > ( cf = cf ) _ { n } + 2naf } $ $ the world's most powerful oxidizers like $ \ ce { f2 } $, $ \ ce { of2 } $, and $ \ ce { clf3 } $ can oxidize ptfe at elevated temperatures, probably by : $ $ \ ce { ( cf2cf2 ) _ { n } + 2nf2 - > 2ncf4 } $ $ similar things can occur under extreme conditions ( temperature and pressure ) with : boranes nitric acid 80 % naoh or koh aluminum chloride ammonia, some amines, and some imines


two examples of libraries that use modern c + + constructs : both the eigen and armadillo libraries ( linear algebra ) use several modern c + + constructs. for instance, they use both expression templates to simplify arithmetic expressions and can sometimes eliminate some temporaries : ( presentation on expression templates in armadillo ) the cgal library ( computational geometry ) uses many modern c + + features ( it heavily uses templates and specializations ) : note : modern c + + constructs are very elegant and can be very fun to use. it is both a strong point and a weakness : when using them, it is so tempting to add several layers of templates / specializations / lambdas that in the end you sometimes get more " administration " than effective code in the program ( in other words, your program " talks " more about the problem than describing the solution ). finding the right balance is very subtle. conclusion : one needs to track the evolution of the " signal / noise " ratio in the code by measuring : how many lines of code in the program? how many classes / templates? running time? memory consumption? everything that increases the first two ones may be considered as a cost ( because it may make the program harder to understand and to maintain ), everything that decreases the last two ones is a gain. for instance, introducing an abstraction ( a virtual class or a template ) can factor code and make the program simpler ( gain ), but if it is never derivated / instanced once only, then it introduces a cost for no associated gain ( again it is subtle because the gain may come later in the future evolution of the program, therefore there is no " golden rule " ). programmer's comfort is also an important factor to be taken into account in the cost / gain balance : with too many templates, compilation time may increase significantly, and error messages become difficult to parse. see also to what extent is generic and meta - programming using c + + templates useful in computational science?


the effective length is $ \ tilde { l } _ i = l _ i - \ mu + 1 $ ( note the r code at the bottom of harold's blog post ), which in the case of $ \ mu < l _ i $ should be 1. ideally, you'd use the mean fragment length mapped to the particular feature, rather than a global $ \ mu $, but that's a lot more work for likely 0 benefit. regarding choosing a particular transcript, ideally one would use a method like salmon or kallisto ( or rsem if you have time to kill ). otherwise, your options are ( a ) choose the major isoform ( if it's known in your tissue and condition ) or ( b ) use a " union gene model " ( sum the non - redundant exon lengths ) or ( c ) take the median transcript length. none of those three options make much of a difference if you're comparing between samples, though they're all inferior to a salmon / kallisto / etc. metric. why are salmon et al. better methods? they don't use arbitrary metrics that will be the same across samples to determine the feature length. instead, they use expectation maximization ( or similarish, since at least salmon doesn't actually use em ) to quantify individual isoform usage. the effective gene length in a sample is then the average of the transcript lengths after weighting for their relative expression ( yes, one should remove $ \ mu $ in there ). this can then vary between samples, which is quite useful if you have isoform switching between samples / groups in such a way that methods a - c above would miss ( think of cases where the switch is to a smaller transcript with higher coverage over it... resulting in the coverage / length in methods a - c to be tamped down ).


that's a good, concise statement of bent's rule. of course we could have just as correctly said that p character tends to concentrate in orbitals directed at electronegative elements. we'll use this latter phrasing when we examine methyl fluoride below. but first, let's expand on the definition a bit so that it is clear to all. bent's rule speaks to the hybridization of the central atom ( $ \ ce { a } $ ) in the molecule $ \ ce { x - a - y } $. $ \ ce { a } $ provides hybridized atomic orbitals that form $ \ ce { a } $'s part of its bond to $ \ ce { x } $ and to $ \ ce { y } $. bent's rule says that as we change the electronegativity of $ \ ce { x } $ and \ or $ \ ce { y } $, $ \ ce { a } $ will tend to rehybridize its orbitals such that more s character will placed in those orbitals directed towards the more electropositive substituent. let's examine how bent's rule might be applied to your example of methyl fluoride. in the $ \ ce { c - f } $ bond, the carbon hybrid orbital is directed towards the electronegative fluorine. bent's rule suggests that this carbon hybrid orbital will be richer in p character than we might otherwise have suspected. instead of the carbon hybrid orbital used in this bond being $ \ ce { sp ^ 3 } $ hybridized it will tend to have more p character and therefore move towards $ \ ce { sp ^ 4 } $ hybridization. why is this? s orbitals are lower in energy than p orbitals. therefore electrons are more stable ( lower energy ) when they are in orbitals with more s character. the two electrons in the $ \ ce { c - f } $ bond will spend more time around the electronegative fluorine and less time around carbon. if that's the case ( and it is ), why " waste " precious, low - energy, s orbital character in a carbon hybrid orbital that doesn't have much electron density to stabilize. instead, save that s character for use in carbon hybrid orbitals that do have more electron density around carbon ( like the $ \ ce { c - h } $ bonds ). so as a consequence of bent's rule, we would


expect more p character in the carbon hybrid orbital used to form the $ \ ce { c - f } $ bond, and more s - character in the carbon hybrid orbitals used to form the $ \ ce { c - h } $ bonds. the physically observable result of all this is that we would expect an $ \ ce { h - c - h } $ angle larger than the tetrahedral angle of 109. 5° ( reflective of more s character ) and an $ \ ce { h - c - f } $ angle slightly smaller than 109. 5° ( reflective of more p character ). in terms of bond lengths, we would expect a shortening of the $ \ ce { c - h } $ bond ( more s character ) and a lengthening of the $ \ ce { c - f } $ bond ( more p character ).


an article by snell and pleasanton,'the atomic and molecular consequenses of radioactive decay ', ( j. phys. chem., 62 ( 11 ), pp 1377 – 1382, $ 1958 $ ) supports ben norris's comment. it is clear... that $ \ ce { ^ { 14 } co2 } $ remains predominantly bound as $ \ ce { no2 + } $, a result that is perhaps not surprising. [ this occurs in ] $ 81 $ % of the decays. in $ \ ce { ^ { 14 } co2 - > no2 ^ + } $ dissociation yielding $ \ ce { no + } $, $ \ ce { o + } $ and $ \ ce { n + } $ follows [ in ], respectively, $ 8. 4 $, $ 5. 9 $, and $ 3. 6 $ % of the decays. a table summarising the results is given. $ $ \ begin { array } { | c | c | } \ hline \ mathbf { ion } & \ mathbf { \ % \ abundance } \ \ \ hline \ ce { no2 + } & 81. 4 ( 16 ) \ \ \ ce { no + } & 8. 4 ( 4 ) \ \ \ ce { o + } & 5. 9 ( 6 ) \ \ \ ce { n + } & 3. 6 ( 4 ) \ \ \ ce { no2 ^ { 2 + } } & 0. 40 ( 06 ) \ \ \ hline \ end { array } $ $


pedro f. felzenszwalb and daniel p. huttenlocher have published their implementation for the distance transform [ archive ]. you cannot use it for volumetric images, but maybe you can extend it to support 3d data. i have only used it as a black box.


imagine a big family dinner where everybody starts asking you about pca. first, you explain it to your great - grandmother ; then to your grandmother ; then to your mother ; then to your spouse ; finally, to your daughter ( a mathematician ). each time the next person is less of a layman. here is how the conversation might go. great - grandmother : i heard you are studying " pee - see - ay ". i wonder what that is... you : ah, it's just a method of summarizing some data. look, we have some wine bottles standing here on the table. we can describe each wine by its colour, how strong it is, how old it is, and so on. visualization originally found here. we can compose a whole list of different characteristics of each wine in our cellar. but many of them will measure related properties and so will be redundant. if so, we should be able to summarize each wine with fewer characteristics! this is what pca does. grandmother : this is interesting! so this pca thing checks what characteristics are redundant and discards them? you : excellent question, granny! no, pca is not selecting some characteristics and discarding the others. instead, it constructs some new characteristics that turn out to summarize our list of wines well. of course, these new characteristics are constructed using the old ones ; for example, a new characteristic might be computed as wine age minus wine acidity level or some other combination ( we call them linear combinations ). in fact, pca finds the best possible characteristics, the ones that summarize the list of wines as well as only possible ( among all conceivable linear combinations ). this is why it is so useful. mother : hmmm, this certainly sounds good, but i am not sure i understand. what do you actually mean when you say that these new pca characteristics " summarize " the list of wines? you : i guess i can give two different answers to this question. the first answer is that you are looking for some wine properties ( characteristics ) that strongly differ across wines. indeed, imagine that you come up with a property that is the same for most of the wines - like the stillness of wine after being poured. this would not be very useful, would it? wines are very different, but your new property makes them all look the same! this would certainly be a bad summary. instead, pca looks for properties that show as much variation


across wines as possible. the second answer is that you look for the properties that would allow you to predict, or " reconstruct ", the original wine characteristics. again, imagine that you come up with a property that has no relation to the original characteristics - like the shape of a wine bottle ; if you use only this new property, there is no way you could reconstruct the original ones! this, again, would be a bad summary. so pca looks for properties that allow reconstructing the original characteristics as well as possible. surprisingly, it turns out that these two aims are equivalent and so pca can kill two birds with one stone. spouse : but darling, these two " goals " of pca sound so different! why would they be equivalent? you : hmmm. perhaps i should make a little drawing ( takes a napkin and starts scribbling ). let us pick two wine characteristics, perhaps wine darkness and alcohol content - - i don't know if they are correlated, but let's imagine that they are. here is what a scatter plot of different wines could look like : each dot in this " wine cloud " shows one particular wine. you see that the two properties ( $ x $ and $ y $ on this figure ) are correlated. a new property can be constructed by drawing a line through the centre of this wine cloud and projecting all points onto this line. this new property will be given by a linear combination $ w _ 1 x + w _ 2 y $, where each line corresponds to some particular values of $ w _ 1 $ and $ w _ 2 $. now, look here very carefully - - here is what these projections look like for different lines ( red dots are projections of the blue dots ) : as i said before, pca will find the " best " line according to two different criteria of what is the " best ". first, the variation of values along this line should be maximal. pay attention to how the " spread " ( we call it " variance " ) of the red dots changes while the line rotates ; can you see when it reaches maximum? second, if we reconstruct the original two characteristics ( position of a blue dot ) from the new one ( position of a red dot ), the reconstruction error will be given by the length of the connecting red line. observe how the length of these red lines changes while the line rotates ; can you see when the total length reaches minimum? if you stare at this animation for some


time, you will notice that " the maximum variance " and " the minimum error " are reached at the same time, namely when the line points to the magenta ticks i marked on both sides of the wine cloud. this line corresponds to the new wine property that will be constructed by pca. by the way, pca stands for " principal component analysis ", and this new property is called " first principal component ". and instead of saying " property " or " characteristic ", we usually say " feature " or " variable ". daughter : very nice, papa! i think i can see why the two goals yield the same result : it is essentially because of the pythagoras theorem, isn't it? anyway, i heard that pca is somehow related to eigenvectors and eigenvalues ; where are they in this picture? you : brilliant observation. mathematically, the spread of the red dots is measured as the average squared distance from the centre of the wine cloud to each red dot ; as you know, it is called the variance. on the other hand, the total reconstruction error is measured as the average squared length of the corresponding red lines. but as the angle between red lines and the black line is always $ 90 ^ \ circ $, the sum of these two quantities is equal to the average squared distance between the centre of the wine cloud and each blue dot ; this is precisely pythagoras theorem. of course, this average distance does not depend on the orientation of the black line, so the higher the variance, the lower the error ( because their sum is constant ). this hand - wavy argument can be made precise ( see here ). by the way, you can imagine that the black line is a solid rod, and each red line is a spring. the energy of the spring is proportional to its squared length ( this is known in physics as hooke's law ), so the rod will orient itself such as to minimize the sum of these squared distances. i made a simulation of what it will look like in the presence of some viscous friction : regarding eigenvectors and eigenvalues. you know what a covariance matrix is ; in my example it is a $ 2 \ times 2 $ matrix that is given by $ $ \ begin { pmatrix } 1. 07 & 0. 63 \ \ 0. 63 & 0. 64 \ end { pmatrix }. $ $ what this means is that the variance


of the $ x $ variable is $ 1. 07 $, the variance of the $ y $ variable is $ 0. 64 $, and the covariance between them is $ 0. 63 $. as it is a square symmetric matrix, it can be diagonalized by choosing a new orthogonal coordinate system, given by its eigenvectors ( incidentally, this is called spectral theorem ) ; corresponding eigenvalues will then be located on the diagonal. in this new coordinate system, the covariance matrix is diagonal and looks like that : $ $ \ begin { pmatrix } 1. 52 & 0 \ \ 0 & 0. 19 \ end { pmatrix }, $ $ meaning that the correlation between points is now zero. it becomes clear that the variance of any projection will be given by a weighted average of the eigenvalues ( i am only sketching the intuition here ). consequently, the maximum possible variance ( $ 1. 52 $ ) will be achieved if we simply take the projection on the first coordinate axis. it follows that the direction of the first principal component is given by the first eigenvector of the covariance matrix. ( more details here. ) you can see this on the rotating figure as well : there is a gray line there orthogonal to the black one ; together, they form a rotating coordinate frame. try to notice when the blue dots become uncorrelated in this rotating frame. the answer, again, is that it happens precisely when the black line points at the magenta ticks. now i can tell you how i found them ( the magenta ticks ) : they mark the direction of the first eigenvector of the covariance matrix, which in this case is equal to $ ( 0. 81, 0. 58 ) $. per popular request, i shared the matlab code to produce the above animations.


the idea of the algorithm is this : assume you have a length $ n $ signal that is sparse in the frequency domain. this means that if you were to calculate its discrete fourier transform, there would be a small number of outputs $ k \ ll n $ that are nonzero ; the other $ n - k $ are negligible. one way of getting at the $ k $ outputs that you want is to use the fft on the entire sequence, then select the $ k $ nonzero values. the sparse fourier transform algorithm presented here is a technique for calculating those $ k $ outputs with lower complexity than the fft - based method. essentially, because $ n - k $ outputs are zero, you can save some effort by taking shortcuts inside the algorithm to not even generate those result values. while the fft has a complexity of $ o ( n \ log n ) $, the sparse algorithm has a potentially - lower complexity of $ o ( k \ log n ) $ for the sparse - spectrum case. for the more general case, where the spectrum is " kind of sparse " but there are more than $ k $ nonzero values ( e. g. for a number of tones embedded in noise ), they present a variation of the algorithm that estimates the $ k $ largest outputs, with a time complexity of $ o ( k \ log n \ log \ frac { n } { k } ) $, which could also be less complex than the fft. according to one graph of their results ( reproduced in the image below ), the crossover point for improved performance with respect to fftw ( an optimized fft library, made by some other guys at mit ) is around the point where only $ \ frac { 1 } { 2 ^ { 11 } } $ - th to $ \ frac { 1 } { 2 ^ { 10 } } $ - th of the output transform coefficients are nonzero. also, in this presentation they indicate that the sparse algorithm provides better performance when $ \ frac { n } { k } \ in [ 2000, 10 ^ 6 ] $. these conditions do limit the applicability of the algorithm to cases where you know there are likely to be few significantly - large peaks in a signal's spectrum. one example that they cite on their web site is that on average, 8 - by - 8 blocks of pixels often used in image and video compression are almost 90 % sparse in the frequency domain and thus could benefit from


an algorithm that exploited that property. that level of sparsity doesn't seem to square with the application space for this particular algorithm, so it may just be an illustrative example. i need to read through the literature a bit more to get a better feel for how practical such a technique is for use on real - world problems, but for certain classes of applications, it could be a fit.


short answer the concept of species is poorly defined and is often misleading. the concepts of lineage and clade / monophyletic group are much more helpful. imo, the only usefulness of this poorly defined concept that is the " species " is to have a common vocabulary for naming lineages. note that homo neanderthalis is sometimes ( although it is rare ) called h. sapiens neanderthalis though highlighting that some would consider neanderthals and modern humans as being part of the same species. long answer are neanderthals and modern humans really considered different species? often, yes they are considered as different species, neanderthals being called homo neanderthalis and modern humans are being called homo sapiens. however, some authors prefer to call neanderthals homo sapiens neanderthalis and modern humans homo sapiens sapiens, putting both lineages in the same species ( but different subspecies ). how common were interbreeding between h. sapiens and h. neanderthalis please, have a look at @ iayork's answer. the rest of the post is here to highlight that whether you consider h. sapiens and h. neanderthalis to be the same species or not is mainly a matter of personal preference given that the concept of species is mainly arbitrary. short history of the concept of species to my knowledge, the concept of species has first been used in the antiquity. at this time, most people viewed species as fixed entities, unable to change through time and without within - population variance ( see aristotle and plato's thoughts ). for some reason, we stuck to this concept even though it sometimes appears to not be very useful. charles darwin already understood that as he says in on the origin of species ( see here ) certainly no clear line of demarcation has as yet been drawn between species and sub - species - that is, the forms which in the opinion of some naturalists come very near to, but do not quite arrive at the rank of species ; or, again, between sub - species and well - marked varieties, or between lesser varieties and individual differences. these differences blend into each other in an insensible series ; and a series impresses the mind with the idea of an actual passage. you might also want to have a look at the post why are there species instead of a continuum of various animals? several definitions of species there are several definitions of species that yield me once again to argue that we should rather forget about this


concept and just use the term lineage and use an accurate description of the reproductive barriers or genetic / functional divergence between lineage rather than using this made - up word that is " species ". i will below discuss the most commonly used definition ( the one you cite ) that is called the biological species concept. problems with the definition you cite a species is often defined as the largest group of organisms where two hybrids are capable of reproducing fertile offspring, typically using sexual reproduction. only applies to species that reproduce sexually of course, this definition only applies to lineages that use sexual reproduction. if we were to use this definition for asexual lineages, then every single individual would be its own species. in practice in general, everybody refers to this definition when talking about sexual lineages but imo few people are correctly applying for practical reasons of communicating effectively. how low the fitness of the hybrids need to be? one has to arbitrarily define a limit of the minimal fitness ( or maximal outbreeding depression ) to get an accurate definition. such boundary can be defined in absolute terms or in relative terms ( relative to the fitness of the " parent lineages " ). if, the hybrid has a fitness that is 100 times lower than any of the two parent lineages, then would you consider the two parent lineages to belong to the same species? type of reproductive isolation we generally categorize the types of reproductive isolation into post - zygotic and pre - zygotic reproductive isolation ( see wiki ). there is a lot to say on this subject but let's just focus on two interesting hypothetical cases : let's consider two lineages of birds. one lineage has blue feathers while the other has red feathers. they absolutely never interbreed because the blue birds don't like the red and the red birds don't like the blue. but if you artificially fuse their gametes, then you get a viable and fertile offspring. are they of the same species? let's imagine we have two lineages of mosquitoes living in the same geographic region. one flying between 6 pm and 8 pm while the other is flying between 1 am and 3 am. they never see each other. but if they were to meet while flying they would mate together and have viable and fertile offsprings. are they of the same species? under what condition is the hybrids survival and fertility measured modern biology can do great stuff! does it count if the hybrid can't develop in the mother's ut


##erus ( let's assume we are talking about mammals ) but can develop in some other environment and then become a healthy adult? ring species in space as you said in your question, ring species is another good example as to why the concept of species is not very helpful ( see the post transitivity of species definitions ). ensatina eschscholtzii ( a salamander ; see devitt et al. 2011 and other articles from the same group ) is a classic example of ring species. species transition through time many modern lineages cannot interbreed with their ancestors. so, then people might be asking, when exactly did the species change occurred? what generation of parent where part of species a and offspring where part of species b. of course, there is no such clearly defined time in which transition occurred. it is more a smooth transition from being clearly reproductively isolated ( if they were placed to each other ) from being clearly the same species. practical issue - renaming lineages how boring it would be if every time we discover the two species can in some circumstances interbreed, we had to rename them! that would be a mess. time of course, when we talk about a species we refer to a group of individuals at a given time. however, we don't want to rename the group of individuals of interest every time a single individual die and get born. this notion yield to the question of how long in time can a single species exist. consider a lineage that has not split for 60, 000 years. was the population 60, 000 years ago the same species as the one today? the two groups may differ a lot phenotypically and may actually be reproductively isolated if they were to exist at the same time. special cases when considering a few special cases, the concept of species become even harder to apply. the amazon molly ( a fish ) is a " species " that have " sexual intercourse " without having " sexual reproduction " and there are no males in the species! how is it possible? the females have to seek for sperm in a sister species in order to activate the development of the eggs but the genes of the father from the sister species are not used ( kokko et al. ( 2008 ) ). in an ant " species ", males and females can both reproduce by parthenogenesis ( some kind of cloning but with meiosis and cross - over ) and don't need each other to reproduce. in this respect, males could actually be called females.


but they still meet to reproduce together. the offsprings of a male and a female ( via sexual reproduction ) are sterile workers. so males and females are just like two sister species that reproduce sexually to create a sterile army to protect and feed them ( fournier et al. ( 2005 ) ). bias it often brings fame to discover a large new species. in consequence, scientists might tend to apply a definition of species that allow them to tell that their species is a new one. a typical example of such eventual bias concern dinosaurs where many new fossils are abusively called a new species while they sometimes are just the same species but at a different stage of development ( according to this ted ). so why do we still use the concept of species? naming imo, its only usefulness is that it allows us to name lineages. and it is very important that we have the appropriate vocabulary to name different lineages even if this brings us to make a few mistakes and use some bad definitions. the alternative use of the concept of lineage it is important though that we are aware that the concept of species is poorly defined and that if we need to be accurate that we can talk in terms of lineages. the main issue with the term lineage is not semantic and comes about the fact that gene lineages may well differ considerably from what one would consider being the " species lineage " as defined by the " lineages of most sequences "... but this is a story for another time. in consequence in consequence to the above issues, we often call two lineages that can interbreed to some extent by different species names. on the other hand, two lineages that can hardly interbreed are sometimes called by the same species name but i would expect this case to be rarer ( as discussed by @ darrelhoffman and @ amr in the comments ). homo lineages i hope it makes sense from the above that the question is really not related to the special case of the interbreeding between the homo sapiens and the homo neanderthalis lineages. the issue is a matter of the definition of species. video and podcast scishow made a video on the subject : what makes a species a species? for the french speakers, you will find an interesting ( one hour long ) podcast on the consequence of the false belief that the concept of species is an objective concept on conservation science at podcast. unil. ch > la biodiversite - plus qu'une simple question de conservation > pierre - henry go


##uyon here is a related answer


in signal processing, two problems are common : what is the output of this filter when its input is $ x ( t ) $? the answer is given by $ x ( t ) \ ast h ( t ) $, where $ h ( t ) $ is a signal called the " impulse response " of the filter, and $ \ ast $ is the convolution operation. given a noisy signal $ y ( t ) $, is the signal $ x ( t ) $ somehow present in $ y ( t ) $? in other words, is $ y ( t ) $ of the form $ x ( t ) + n ( t ) $, where $ n ( t ) $ is noise? the answer can be found by the correlation of $ y ( t ) $ and $ x ( t ) $. if the correlation is large for a given time delay $ \ tau $, then we may be confident in saying that the answer is yes. note that when the signals involved are symmetric, convolution and cross - correlation become the same operation ; this case is also very common in some areas of dsp.


to all those who said “ yes ” i ’ ll offer a counter - point that the answer is “ no ”, by design. those languages will never be able to match the performance of statically compiled languages. kos offered the ( very valid ) point that dynamic languages have more information about the system at runtime which can be used to optimise code. however, there ‘ s another side of the coin : this additional information needs to be kept track of. on modern architectures, this is a performance killer. william edwards offers a nice overview of the argument. in particular, the optimisations mentioned by kos can ’ t be applied beyond a very limited scope unless you limit the expressive power of your languages quite drastically, as mentioned by devin. this is of course a viable trade - off but for the sake of the discussion, you then end up with a static language, not a dynamic one. those languages differ fundamentally from python or ruby as most people would understand them. william cites some interesting ibm slides : every variable can be dynamically - typed : need type checks every statement can potentially throw exceptions due to type mismatch and so on : need exception checks every field and symbol can be added, deleted, and changed at runtime : need access checks the type of every object and its class hierarchy can be changed at runtime : need class hierarchy checks some of those checks can be eliminated after analysis ( n. b. : this analysis also takes time – at runtime ). furthermore, kos argues that dynamic languages could even surpass c + + performance. the jit can indeed analyse the program ’ s behaviour and apply suitable optimisations. but c + + compilers can do the same! modern compilers offer so - called profile - guided optimisation which, if they are given suitable input, can model program runtime behaviour and apply the same optimisations that a jit would apply. of course, this all hinges on the existence of realistic training data and furthermore the program cannot adapt its runtime characteristics if the usage pattern changes mid - run. jits can theoretically handle this. i ’ d be interested to see how this fares in practice, since, in order to switch optimisations, the jit would continually have to collect usage data which once again slows down execution. in summary, i ’ m not convinced that runtime hot - spot optimisations outweigh the overhead of tracking runtime information in the long run, compared to static


analysis and optimisation.


ok, it seems that user21820 is right ; this effect is caused by both the foreground and the background objects being out of focus, and occurs in areas where the foreground object ( your finger ) partially occludes the background, so that only some of the light rays reaching your eye from the background are blocked by the foreground obstacle. to see why this happens, take a look at this diagram : the black dot is a distant object, and the dashed lines depict light rays emerging from it and hitting the lens, which refocuses them to form an image on a receptor surface ( the retina in your eye, or the sensor in your camera ). however, since the lens is slightly out of focus, the light rays don't converge exactly on the receptor plane, and so the image appears blurred. what's important to realize is that each part of the blurred image is formed by a separate light ray passing through a different part of the lens ( and of the intervening space ). if we insert an obstacle between the object and the lens that blocks only some of those rays, those parts of the image disappear! this has two effects : first, the image of the background object appears sharper, because the obstacle effectively reduces the aperture of the lens. however, it also shifts the center of the aperture, and thus of the resulting image, to one side. the direction in which the blurred image shifts depends on whether the lens is focused a little bit too close or a little bit too far. if the focus is too close, as in the diagrams above, the image will appear shifted away from the obstacle. ( remember that the lens inverts the image, so the image of the obstacle itself would appear above the image of the dot in the diagram! ) conversely, if the focus is too far, the background object will appear to shift closer to the obstacle. once you know the cause, it's not hard to recreate this effect in any 3d rendering program that supports realistic focal blur. i used pov - ray, because i happen to be familiar with it : above, you can see two renderings of a classic computer graphics scene : a yellow sphere in front of a grid plane. the first image is rendered with a narrow aperture, showing both the grid and the sphere in sharp detail, while the second one is rendered with a wide aperture, but with the grid still perfectly in focus. in neither case does the effect occur, since the background is in focus. things change, however


, once the focus is moved slightly. in the first image below, the camera is focused slightly in front of the background plane, while in the second image, it is focused slightly behind the plane : you can clearly see that, with the focus between the grid and the sphere, the grid lines close to the sphere appear shifted away from it, while with the focus behind the grid plane, the grid lines shift towards the sphere. moving the camera focus further away from the background plane makes the effect even stronger : you can also clearly see the lines getting sharper near the sphere, as well as bending, because part of the blurred image is blocked by the sphere. i can even re - create the broken line effect in your photos by replacing the sphere with a narrow cylinder : to recap : this effect is caused by the background being ( slightly ) out of focus, and by the foreground object effectively occluding part of the camera / eye aperture, causing the effective aperture ( and thus the resulting image ) to be shifted. it is not caused by : diffraction : as shown by the computer renderings above ( which are created using ray tracing, and therefore do not model any diffraction effects ), this effect is fully explained by classical ray optics. in any case, diffraction cannot explain the background images shifting towards the obstacle when the focus is behind the background plane. reflection : again, no reflection of the background from the obstacle surface is required to explain this effect. in fact, in the computer renderings above, the yellow sphere / cylinder does not reflect the background grid at all. ( the surfaces have no specular reflection component, and no indirect diffuse illumination effects are included in the lighting model. ) optical illusion : the fact that this is not a perceptual illusion should be obvious from the fact that the effect can be photographed, and the distortion measured from the photos, but the fact that it can also be reproduced by computer rendering further confirms this. addendum : just to check, i went and replicated the renderings above using my old dslr camera ( and an lcd monitor, a yellow plastic spice jar cap, and some thread to hang it from ) : the first photo above has the camera focus behind the screen ; the second one has it in front of the screen. the first photo below shows what the scene looks like with the screen in focus ( or as close as i could get it with manual focus adjustment ). finally, the crappy cellphone camera picture below ( second )


shows the setup used to take the other three photos. addendum 2 : before the comments below were cleaned out, there was some discussion there about the usefulness of this phenomenon as a quick self - diagnostic test for myopia ( nearsightedness ). while i am not an opthalmologist, it does appear that, if you experience this effect with your naked eye, while trying to keep the background in focus, then you may have some degree of myopia or some other visual defect, and may want to get an eye exam. ( of course, even if you don't, getting one every few years or so isn't a bad idea, anyway. mild myopia, up to the point where it becomes severe enough to substantially interfere with your daily life, can be surprisingly hard to self - diagnose otherwise, since it typically appears slowly and, with nothing to compare your vision to, you just get used to distant objects looking a bit blurry. after all, to some extent that's true for everyone ; only the distance varies. ) in fact, with my mild ( about −1 dpt ) myopia, i can personally confirm that, without my glasses, i can easily see both the bending effect and the sharpening of background features when i move my finger in front of my eye. i can even see a hint of astigmatism ( which i know i have ; my glasses have some cylindrical correction to fix it ) in the fact that, in some orientations, i can see the background features bending not just away from my finger, but also slightly sideways. with my glasses on, these effects almost but not quite disappear, suggesting that my current prescription may be just a little bit off.


there are four comments on this reddit thread that may be on to something : by silver _ pc : could it be a form of'paper towns'on maps - aka fictitious entry to identify direct copies? by toybuilder : not that they are necessarily doing this, but i've heard it said that mass manufacturers will keep removing capacitors until their product stop working. ( certainly, it was common to see pc motherboards with unpopulated decoupling cap pads all over the place back when i used to hand - build pcs. ) if you have a mass - production setup to stuff boards and do automated visual quality inspection, maybe you don't want to take the downtime hit to reprogram your production line as you introduce and monitor ongoing production changes with the ultimate goal of removing the capacitors. if so, you could nullify the capacitors by stuffing them as before, but with both pads on the same plane. samsung manufactures capacitors, so maybe they're a bit more willing to burn through a short run of boards with wasted capacitors if, in the long run, they can more definitively get rid of them. keep in mind that large companies like samsung have the ability to test their products for certification purposes in - house, so it's probably cheap enough to run a small batch to test and accept / reject. and if accepted, to just release it into the market. at least, that would be my guess. by john _ barlycorn : i believe this has more to do with manufacturing process than it has to do with electrical purpose. modern electronics manufacturing is bat - shit insane with regard to speed. we're talking about robotic movements that are so fast, that air resistance and machine vibration have to be considered. the position of parts that feed the pick and place machines is critical to the speed of operation. so they spend a lot of time on setup. then press " start " and watch her whirl. so if they end up with 2 products that are similar, they have to go through this expensive setup change run by an expensive engineer to switch them out. but these caps are so cheap that after you consider this setup change, it might actually cost them more money to remove them during different runs. they might just say " tanj it " and let them populate them despite not needing them. my father worked in the industry for years, and had some experience in smaller volume stuff. in manufacturing this sort of backwards logic is not


uncommon. you do what's cheapest / most profitable which is not always the least wasteful option. by coppernickus : there are other planes in a tablet : the display and case. maybe the answer lies in the third dimension. might there be a brush / spring contact or some other connection on another layer of the device that completes a circuit when the tablet is assembled? that technique is used in their cellphones to mate various internal boards to the back and case. in the phones, it's spring contacts mating to gold or silver contacts when the device is assembled. or perhaps just some proximity based rf control related to the display?


i think that one of your problems is that ( as you observed in your comments ) neumann conditions are not the conditions you are looking for, in the sense that they do not imply the conservation of your quantity. to find the correct condition, rewrite your pde as $ $ \ frac { \ partial \ phi } { \ partial t } = \ frac { \ partial } { \ partial x } \ left ( d \ frac { \ partial \ phi } { \ partial x } + v \ phi \ right ) + s ( x, t ). $ $ now, the term that appears in parentheses, $ d \ frac { \ partial \ phi } { \ partial x } + v \ phi = 0 $ is the total flux and this is the quantity that you must put to zero on the boundaries to conserve $ \ phi $. ( i have added $ s ( x, t ) $ for the sake of generality and for your comments. ) the boundary conditions that you have to impose are then ( supposing your space domain is $ ( - 10, 10 ) $ ) $ $ d \ frac { \ partial \ phi } { \ partial x } ( - 10 ) + v \ phi ( - 10 ) = 0 $ $ for the left side and $ $ d \ frac { \ partial \ phi } { \ partial x } ( 10 ) + v \ phi ( 10 ) = 0 $ $ for the right side. these are the so - called robin boundary condition ( note that wikipedia explicitly says these are the insulating conditions for advection - diffusion equations ). if you set up these boundary conditions, you get the conservation properties that you were looking for. indeed, integrating over the space domain, we have $ $ \ int \ frac { \ partial \ phi } { \ partial t } dx = \ int \ frac { \ partial } { \ partial x } \ left ( d \ frac { \ partial \ phi } { \ partial x } + v \ phi \ right ) dx + \ int s ( x, t ) dx $ $ using integration by parts on the right hand side, we have $ $ \ int \ frac { \ partial \ phi } { \ partial t } dx = \ left ( d \ frac { \ partial \ phi } { \ partial x } + v \ phi \ right ) ( 10 ) - \ left ( d \ frac { \ partial \ phi } { \ partial


x } + v \ phi \ right ) ( - 10 ) + \ int s ( x, t ) dx $ $ now, the two central terms vanish thanks to the boundary conditions. integrating in time, we obtain $ $ \ int _ 0 ^ t \ int \ frac { \ partial \ phi } { \ partial t } dx dt = \ int _ 0 ^ t \ int s ( x, t ) dx dt $ $ and if we are allowed to switch the first two integrals, $ $ \ int \ phi ( x, t ) dx - \ int \ phi ( x, 0 ) dx = \ int _ 0 ^ t \ int s ( x, t ) dx $ $ this shows that the domain is insulated from the exterior. in particular, if $ s = 0 $, we get the conservation of $ \ phi $.


due to resistor colour - coding bands on leaded components two - significant digits were preferred and i reckon this graph speaks for itself : - these are the 13 resistors that span 10 to 100 in the old 10 % series and they are 10, 12, 15, 18, 22, 27, 33, 39, 47, 56, 68, 82, 100. i've plotted the resistor number ( 1 to 13 ) against the log of resistance. this, plus the desire for two - significant digits, looks like a good reason. i tried offsetting a few preferred values by + / - 1 and the graph wasn't as straight. there are 12 values from 10 to 82 hence e12 series. there are 24 values in the e24 range. edit - the magic number for the e12 series is the 12th root of ten. this equals approximately 1. 21152766 and is the theoretical ratio the next highest resistor value has to be compared to the current value i. e. 10k becomes 12. 115k etc. for the e24 series, the magic number is the 24th root of ten ( not suprisingly ) it's interesting to note that a slightly better straight line is got with several values in the range reduced. here are the theoretical values to three significant digits : - 10. 1, 12. 1, 14. 7, 17. 8, 21. 5, 26. 1, 31. 6, 38. 3, 46. 4, 56. 2, 68. 1 and 82. 5 clearly 27 ought to be 26, 33 ought to be 32, 39 ought to be 38 and 47 ought to be 46. maybe 82 should be 83 as well. here's the graph of traditional e12 series ( blue ) versus exact ( green ) : - so maybe the popularity of 47 is based on some poor maths?


overview the short answer is that they have the maximum number of vanishing moments for a given support ( i. e number of filter coefficients ). that's the " extremal " property which distinguishes daubechies wavelets in general. loosely speaking, more vanishing moments implies better compression, and smaller support implies less computation. in fact, the tradeoff between vanishing moments and filter size is so important that it dominates the way that wavelets are named. for example, you'll often see the d4 wavelet referred to either as d4 or db2. the 4 refers to the number of coefficients, and the 2 refers to the number of vanishing moments. both refer to the same mathematical object. below, i'll explain more about what moments are ( and why we want to make them disappear ), but for now, just understand that it relates to how well we can " fold up " most of the information in the signal into a smaller number of values. lossy compression is achieved by keeping those values, and throwing away the others. now, you may have noticed that cdf 9 / 7, which is used in jpeg 2000, has two numbers in the name, rather than one. in fact, it's also referred to as bior 4. 4. that's because it's not a " standard " discrete wavelet at all. in fact, it doesn't even technically preserve the energy in the signal, and that property is the entire reason people got so excited about the dwt in the first place! the numbers, 9 / 7 and 4. 4, still refer to the supports and vanishing moments respectively, but now there are two sets of coefficients that define the wavelet. the technical term is that rather than being orthogonal, they are biorthogonal. rather than getting too deep into what that means mathematically, i'll just review the factors which led to using non - energy - preserving biorthogonal wavelets in the first place. jpeg 2000 a much more detailed discussion of the design decisions surrounding the cdf 9 / 7 wavelet can be found in the following paper : usevitch, bryan e. a tutorial on modern lossy wavelet image compression : foundations of jpeg 2000. i'll just review the main points here. quite often, the orthogonal daubechies wavelets can actually result in increasing the number of values required to represent the signal. the effect is called coefficient expansion. if we're doing lossy compression that


may or may not matter ( since we're throwing away values at the end anyway ), but it definitely seems counterproductive in the context of compression. one way to solve the problem is to treat the input signal as periodic. just treating the input as periodic results in discontinuities at the edges, which are harder to compress, and are just artifacts of the transform. for example, consider the jumps from 3 to 0 in the following periodic extension : $ [ 0, 1, 2, 3 ] \ rightarrow [... 0, 1, 2, 3, 0, 1, 2, 3,... ] $. to solve that problem, we can use a symmetric periodic extension of the signal, as follows : $ [ 0, 1, 2, 3 ] \ rightarrow [..., 0, 1, 2, 3, 3, 2, 1, 0, 0, 1... ] $. eliminating jumps at the edges is one of the reasons the discrete cosine transform ( dct ) is used instead of the dft in jpeg. representing a signal with cosines implicitly assumes " front to back looping " of the input signal, so we want wavelets which have the same symmetry property. unfortunately, the only orthogonal wavelet which has the required characteristics is the haar ( or d2, db1 ) wavelet, which only as one vanishing moment. ugh. that leads us to biorthogonal wavelets, which are actually redundant representations, and therefore don't preserve energy. the reason cdf 9 / 7 wavelets are used in practice is because they were designed to come very close to being energy preserving. they have also tested well in practice. there are other ways to solve the various problems ( mentioned briefly in the paper ), but these are the broad strokes of the factors involved. vanishing moments so what are moments, and why do we care about them? smooth signals can be well approximated by polynomials, i. e. functions of the form : $ $ a + bx + cx ^ 2 + dx ^ 3 +... $ $ the moments of a function ( i. e. signal ) are a measure of how similar it is to a given power of x. mathematically, this is expressed as an inner product between the function and the power of x. a vanishing moment means the inner product is zero, and therefore the function doesn't " resemble " that power of


x, as follows ( for the continuous case ) : $ $ \ int { x ^ n f ( x ) dx = 0 } $ $ now each discrete, orthogonal wavelet has two fir filters associated with it, which are used in the dwt. one is a lowpass ( or scaling ) filter $ \ phi $, and the other is a highpass ( or wavelet ) filter $ \ psi $. that terminology seems to vary somewhat, but it's what i'll use here. at each stage of the dwt, the highpass filter is used to " peel off " a layer of detail, and the lowpass filter yields a smoothed version of the signal without that detail. if the highpass filter has vanishing moments, those moments ( i. e. low order polynomial features ) will get stuffed into the complementary smoothed signal, rather than the detail signal. in the case of lossy compression, hopefully the detail signal won't have much information in it, and therefore we can throw most of it away. here's a simple example using the haar ( d2 ) wavelet. there's typically a scaling factor of $ 1 / \ sqrt { 2 } $ involved, but i'm omitting it here to illustrate the concept. the two filters are as follows : $ $ \ phi = [ 1, 1 ] \ \ \ psi = [ 1, - 1 ] $ $ the highpass filter vanishes for the zero'th moment, i. e. $ x ^ 0 = 1 $, therefore it has one vanishing moment. to see this, consider this constant signal : $ [ 2, 2, 2, 2 ] $. now intuitively, it should be obvious that there's not much information there ( or in any constant signal ). we could describe the same thing by saying " four twos ". the dwt gives us a way to describe that intuition explicitly. here's what happens during a single pass of the dwt using the haar wavelet : $ $ [ 2, 2, 2, 2 ] \ rightarrow _ { \ psi } ^ { \ phi } \ left \ { \ begin { array } { rr } \ left [ 2 + 2, 2 + 2 \ right ] = \ left [ 4, 4 \ right ] \ \ \ left [ 2 - 2, 2 - 2 \ right ] = \ left [ 0, 0 \ right ] \ end { array } \ right. $ $ and


what happens on the second pass, which operates on just the smoothed signal : $ $ [ 4, 4 ] \ rightarrow _ { \ psi } ^ { \ phi } \ left \ { \ begin { array } { rr } \ left [ 4 + 4 \ right ] = \ left [ 8 \ right ] \ \ \ left [ 4 - 4 \ right ] = \ left [ 0 \ right ] \ end { array } \ right. $ $ notice how the constant signal is completely invisible to the detail passes ( which all come out to be 0 ). also notice how four values of $ 2 $ have been reduced to a single value of $ 8 $. now if we wanted to transmit the original signal, we could just send the $ 8 $, and the inverse dwt could reconstruct the original signal by assuming that all the detail coefficients are zero. wavelets with higher - order vanishing moments allow similar results with signals that are well approximated by lines, parabolas, cubics, etc. further reading i'm glossing over a lot of detail to keep the above treatment accessible. the following paper has a much deeper analysis : m. unser, and t. blu, mathematical properties of the jpeg2000 wavelet filters, ieee trans. image proc., vol. 12, no. 9, sept. 2003, pg. 1080 - 1090. footnote the above paper seems to suggest that the jpeg2000 wavelet is called daubechies 9 / 7, and is different from the cdf 9 / 7 wavelet. we have derived the exact form of the jpeg2000 daubechies 9 / 7 scaling filters... these filters result from the factorization of the same polynomial as $ daubechies _ { 8 } $ [ 10 ]. the main difference is that the 9 / 7 filters are symmetric. moreover, unlike the biorthogonal splines of cohen - daubechies - feauveau [ 11 ], the nonregular part of the polynomial has been divided among both sides, and as evenly as possible. [ 11 ] a. cohen, i. daubechies, and j. c. feauveau, “ biorthogonal bases of compactly supported wavelets, ” comm. pure appl. math., vol. 45, no. 5, pp. 485 – 560, 1992. the draft of the jpeg2000 standard ( pdf


link ) that i've browsed also calls the official filter daubechies 9 / 7. it references this paper : m. antonini, m. barlaud, p. mathieu, and i. daubechies, “ image coding using the wavelet transform, ” ieee trans. image proc. 1, pp. 205 - 220, april 1992. i haven't read either of those sources, so i can't say for sure why wikipedia calls the jpeg2000 wavelet cdf 9 / 7. it seems like there may be a difference between the two, but people call the official jpeg2000 wavelet cdf 9 / 7 anyway ( because it's based on the same foundation? ). regardless of the name, the paper by usevitch describes the one that's used in the standard.


if you have a few minutes, most people know how to add and multiply two three - digit numbers on paper. ask them to do that, ( or to admit that they could, if they had to ) and ask them to acknowledge that they do this task methodically : if this number is greater than 9, then add a carry, and so forth. this description they just gave of what to do that is an example of an algorithm. this is how i teach people the word algorithm, and in my experience this has been the best example. then you can explain that one may imagine there are more complex tasks that computers must do, and that therefore there is a need for an unambiguous language to feed a computer these algorithms. so there has been a proliferation of programming languages because people express their thoughts differently, and you're researching ways to design these languages so that it is harder to make mistakes. this is a very recognizable situation. most people have no concept that the computers they use run programs, or that those programs are human - written source code, or that a computer could'read'source code, or that computation, which they associate with arithmetic, is the only thing computers do ( and data movement, and networking, maybe ). my research is in quantum computing, so when people ask me what i do, i don't attempt to explain that. instead, i try to explain that quantum physics exists ( they've usually heard of schrodinger's cat, and things that are in two places at once ), and that because of this strange physics, faster computation might be possible. my goal is to leave the person feeling a little more knowledeable than they did going in, feeling excited about a world they didn't know existed, but with which you have now familiarized them. i find that that's much more valuable than explaining my particular research questions.


to expand on my comment from yesterday. you could do this with the ete toolkit ( i just copied one logo file rather than converting all 26 to png ) : from ete3 import tree, treestyle, faces def mylayout ( node ) : if node. is _ leaf ( ) : logo _ face = faces. imgface ( str. split ( node. name, '.') [ 0 ] + ". png " ) # this doesn't seem to work with eps files. you could try other formats faces. add _ face _ to _ node ( logo _ face, node, column = 0 ) node. img _ style [ " size " ] = 0 # remove blue dots from nodes t = tree ( " tree. nwk ", format = 3 ) ts = treestyle ( ) ts. layout _ fn = mylayout ts. show _ leaf _ name = false # remove sequence labels ts. scale = 10000 # rescale branch lengths so they are longer than the width of the logos t. render ( " formatted. png ", tree _ style = ts, h = 3000, w = 3000 ) # you may need to fiddle with dimensions and scaling to get the look you want if you want all of the logos lined up in a column add aligned = true to faces. add _ face _ to _ node


computers have a " real - time clock " - - a special hardware device ( e. g., containing a quartz crystal ) on the motherboard that maintains the time. it is always powered, even when you shut your computer off. also, the motherboard has a small battery that is used to power the clock device even when you disconnect your computer from power. the battery doesn't last forever, but it will last at least a few weeks. this helps the computer keep track of the time even when your computer is shut off. the real - time clock doesn't need much power, so it's not wasting energy. if you take out the clock battery in addition to removing the main battery and disconnecting the power cable then the computer will lose track of time and will ask you to enter the time and date when you restart the computer. to learn more, see real - time clock and cmos battery and why does my motherboard have a battery. also, on many computers, when you connect your computer to an internet connection, the os will go find a time server on the network and query the time server for the current time. the os can use this to very accurately set your computer's local clock. this uses the network time protocol, also called ntp.


short answer the cache efficiency argument has already been explained in detail. in addition, there is an intrinsic argument, why quicksort is fast. if implemented like with two “ crossing pointers ”, e. g. here, the inner loops have a very small body. as this is the code executed most often, this pays off. long answer first of all, the average case does not exist! as best and worst case often are extremes rarely occurring in practice, average case analysis is done. but any average case analysis assume some distribution of inputs! for sorting, the typical choice is the random permutation model ( tacitly assumed on wikipedia ). why $ o $ - notation? discarding constants in analysis of algorithms is done for one main reason : if i am interested in exact running times, i need ( relative ) costs of all involved basic operations ( even still ignoring caching issues, pipelining in modern processors... ). mathematical analysis can count how often each instruction is executed, but running times of single instructions depend on processor details, e. g. whether a 32 - bit integer multiplication takes as much time as addition. there are two ways out : fix some machine model. this is done in don knuth's book series “ the art of computer programming ” for an artificial “ typical ” computer invented by the author. in volume 3 you find exact average case results for many sorting algorithms, e. g. quicksort : $ 11. 667 ( n + 1 ) \ ln ( n ) - 1. 74n - 18. 74 $ mergesort : $ 12. 5 n \ ln ( n ) $ heapsort : $ 16 n \ ln ( n ) + 0. 01n $ insertionsort : $ 2. 25n ^ 2 + 7. 75n - 3ln ( n ) $ [ source ] these results indicate that quicksort is fastest. but, it is only proved on knuth's artificial machine, it does not necessarily imply anything for say your x86 pc. note also that the algorithms relate differently for small inputs : [ source ] analyse abstract basic operations. for comparison based sorting, this typically is swaps and key comparisons. in robert sedgewick's books, e. g. “ algorithms ”, this approach is pursued. you find there quicksort : $ 2n \ ln ( n ) $ comparisons and $ \ frac13n \ ln ( n ) $ swaps on average


mergesort : $ 1. 44n \ ln ( n ) $ comparisons, but up to $ 8. 66n \ ln ( n ) $ array accesses ( mergesort is not swap based, so we cannot count that ). insertionsort : $ \ frac14n ^ 2 $ comparisons and $ \ frac14n ^ 2 $ swaps on average. as you see, this does not readily allow comparisons of algorithms as the exact runtime analysis, but results are independent from machine details. other input distributions as noted above, average cases are always with respect to some input distribution, so one might consider ones other than random permutations. e. g. research has been done for quicksort with equal elements and there is nice article on the standard sort function in java


alright, i'm gonna answer this with an argument that " opponents " to my rigid nazi - like position regarding the dft have. first of all, my rigid, nazi - like position : the discrete fourier transform and discrete fourier series are one - and - the - same. the dft maps one infinite and periodic sequence, $ x [ n ] $ with period $ n $ in the " time " domain to another infinite and periodic sequence, $ x [ k ] $, again with period $ n $, in the " frequency " domain. and the idft maps it back. and they're " bijective " or " invertible " or " one - to - one ". dft : $ $ x [ k ] = \ sum \ limits _ { n = 0 } ^ { n - 1 } x [ n ] e ^ { - j 2 \ pi nk / n } $ $ idft : $ $ x [ n ] = \ frac { 1 } { n } \ sum \ limits _ { k = 0 } ^ { n - 1 } x [ k ] e ^ { j 2 \ pi nk / n } $ $ that is most fundamentally what the dft is. it is inherently a periodic or circular thing. $ $ x [ n + n ] = x [ n ] \ qquad \ forall n \ in \ mathbb { z } $ $ $ $ x [ k + n ] = x [ k ] \ qquad \ forall k \ in \ mathbb { z } $ $ but the periodicity deniers like to say this about the dft. it is true, it just doesn't change any of the above. so, suppose you had a finite - length sequence $ x [ n ] $ of length $ n $ and, instead of periodically extending it ( which is what the dft inherently does ), you append this finite - length sequence with zeros infinitely on both left and right. so $ $ \ hat { x } [ n ] \ triangleq \ begin { cases } x [ n ] \ qquad & \ text { for } 0 \ le n \ le n - 1 \ \ \ \ 0 & \ text { otherwise } \ end { cases } $ $ now, this non - repeating infinite sequence does have a dtft : dtft : $ $ \ hat { x } \ left ( e ^ { j \ omega } \ right ) = \ sum \ limits _ {


n = - \ infty } ^ { + \ infty } \ hat { x } [ n ] e ^ { - j \ omega n } $ $ $ \ hat { x } \ left ( e ^ { j \ omega } \ right ) $ is the z - transform of $ \ hat { x } [ n ] $ evaluated on the unit circle $ z = e ^ { j \ omega } $ for infinitely many real values of $ \ omega $. now, if you were to sample that dtft $ \ hat { x } \ left ( e ^ { j \ omega } \ right ) $ at $ n $ equally spaced points on the unit circle, with one point at $ z = e ^ { j \ omega } = 1 $, you would get $ $ \ begin { align } \ hat { x } \ left ( e ^ { j \ omega } \ right ) \ bigg | _ { \ omega = 2 \ pi \ frac { k } { n } } & = \ sum \ limits _ { n = - \ infty } ^ { + \ infty } \ hat { x } [ n ] e ^ { - j \ omega n } \ bigg | _ { \ omega = 2 \ pi \ frac { k } { n } } \ \ & = \ sum \ limits _ { n = - \ infty } ^ { + \ infty } \ hat { x } [ n ] e ^ { - j 2 \ pi k n / n } \ \ & = \ sum \ limits _ { n = 0 } ^ { n - 1 } \ hat { x } [ n ] e ^ { - j 2 \ pi k n / n } \ \ & = \ sum \ limits _ { n = 0 } ^ { n - 1 } x [ n ] e ^ { - j 2 \ pi k n / n } \ \ & = x [ k ] \ \ \ end { align } $ $ that is precisely how the dft and dtft are related. sampling the dtft at uniform intervals in the " frequency " domain causes, in the " time " domain, the original sequence $ \ hat { x } [ n ] $ to be repeated and shifted by all multiples of $ n $ and overlap - added. that's what uniform sampling in one domain causes in the other domain. but, since $ \ hat { x } [ n ] $ is hypothes


##ized to be $ 0 $ outside of the interval $ 0 \ le n \ le n - 1 $, that overlap - adding does nothing. it just periodically extends the non - zero part of $ \ hat { x } [ n ] $, our original finite - length sequence, $ x [ n ] $.


benefits of central repository for community having a central repository for packages is very useful. for couple of reasons : it makes very easy to resolve dependencies. installing all the dependencies manually would be exhausting but also dangerous ( point 2 ). package compatibility! if i install package with dependencies, i would like to be sure that i install correct versions of all the dependencies. reliability thanks to unified and integrated testing. bioconductor is trying really hard to force developers to write good test, they also have people manually testing submitted packages. they also remove packages that are not maintained. packages in bioconductor are ( reasonably ) reliable. in the end, installing dev versions of r packages is in my opinion very bad practise for reproducible science. if developers delete github repo, commit hash you have used won't be enough to get the code. benefits of central repository for developers i forgot about the advantages for you as developer to submit your package to bioconductor : your package will be more visible users will have a guarantee that your code was checked by third person your package will be for users easier to install your package will be forced to use standardized vignettes, version tags and tests - > will be more accessible by community to build on your code bioconductor specific advantages over cran i see the big advantage in the community support page, provided by bioconductor. @ llopis'comprehensive elaboration.


the answer to all questions is no. in fact, even the right reaction to the first sentence - that the planck scale is a " discrete measure " - is no. the planck length is a particular value of distance which is as important as $ 2 \ pi $ times the distance or any other multiple. the fact that we can speak about the planck scale doesn't mean that the distance becomes discrete in any way. we may also talk about the radius of the earth which doesn't mean that all distances have to be its multiples. in quantum gravity, geometry with the usual rules doesn't work if the ( proper ) distances are thought of as being shorter than the planck scale. but this invalidity of classical geometry doesn't mean that anything about the geometry has to become discrete ( although it's a favorite meme promoted by popular books ). there are lots of other effects that make the sharp, point - based geometry we know invalid - and indeed, we know that in the real world, the geometry collapses near the planck scale because of other reasons than discreteness. quantum mechanics got its name because according to its rules, some quantities such as energy of bound states or the angular momentum can only take " quantized " or discrete values ( eigenvalues ). but despite the name, that doesn't mean that all observables in quantum mechanics have to possess a discrete spectrum. do positions or distances possess a discrete spectrum? the proposition that distances or durations become discrete near the planck scale is a scientific hypothesis and it is one that may be - and, in fact, has been - experimentally falsified. for example, these discrete theories inevitably predict that the time needed for photons to get from very distant places of the universe to the earth will measurably depend on the photons'energy. the fermi satellite has showed that the delay is zero within dozens of milliseconds which proves that the violations of the lorentz symmetry ( special relativity ) of the magnitude that one would inevitably get from the violations of the continuity of spacetime have to be much smaller than what a generic discrete theory predicts. in fact, the argument used by the fermi satellite only employs the most straightforward way to impose upper bounds on the lorentz violation. using the so - called birefringence, one may improve the bounds by 14 orders of magnitude! this safely kills any imaginable theory that violates the lorentz symmetry - or even continuity of the spacetime - at the planck


scale. in some sense, the birefringence method applied to gamma ray bursts allows one to " see " the continuity of spacetime at distances that are 14 orders of magnitude shorter than the planck length. it doesn't mean that all physics at those " distances " works just like in large flat space. it doesn't. but it surely does mean that some physics - such as the existence of photons with arbitrarily short wavelengths - has to work just like it does at long distances. and it safely rules out all hypotheses that the spacetime may be built out of discrete, lego - like or any qualitatively similar building blocks.


the feeling you describe is called " paresthesia, " and according to the ninds info page, it happens " when sustained pressure is placed on a nerve. "


there is no stationary signal. stationary and non - stationary are characterisations of the process that generated the signal. a signal is an observation. a recording of something that has happened. a recording of a series of events as a result of some process. if the properties of the process that generates the events does not change in time, then the process is stationary. we know what a signal $ x ( n ) $ is, it is a collection of events ( measurements ) at different time instances ( $ n $ ). but how can we describe the process that generated it? one way of capturing the properties of a process is to obtain the probability distribution of the events it describes. practically, this could look like a histogram but that's not entirely useful here because it only provides information on each event as if it was unrelated to its neighbour events. another type of " histogram " is one where we could fix an event and ask what is the probability that the other events happen given another event has already taken place. so, if we were to capture this " monster histogram " that describes the probability of transition from any possible event to any other possible event, we would be able to describe any process. furthermore, if we were to obtain this at two different time instances and the event - to - event probabilities did not seem to change then that process would be called a stationary process. ( absolute knowledge of the characteristics of a process in nature is rarely assumed of course ). having said this, let's look at the examples : white noise : white noise is stationary because any signal value ( event ) is equally probable to happen given any other signal value ( another event ) at any two time instances no matter how far apart they are. coloured noise : what is coloured noise? it is essentially white - noise with some additional constraints. the constraints mean that the event - to - event probabilities are now not equal but this doesn't mean that they are allowed to change with time. so, pink noise is filtered white noise whose frequency spectrum decreases following a specific relationship. this means that pink noise has more low frequencies which in turn means that any two neighbouring events would have higher probabilities of occurring but that would not hold for any two events ( as it was in the case of white noise ). fine, but if we were to obtain these event - to - event probabilities at two different time instances and they did not seem to change, then the process that generated the signals would be stationary.


chirp : non stationary, because the event - to - event probabilities change with time. here is a relatively easy way to visualise this : consider a sampled version of the lowest frequency sinusoid at some sampling frequency. this has some event - to - event probabilities. for example, you can't really go from - 1 to 1, if you are at - 1 then the next probable value is much more likely to be closer to - 0. 9 depending of course on the sampling frequency. but, actually, to generate the higher frequencies you can resample this low frequency sinusoid. all you have to do for the low frequency to change pitch is to " play it faster ". aha! therefore, yes! you can actually move from - 1 to 1 in one sample, provided that the sinusoid is resampled really really fast. therefore!!! the event - to - event probabilities change with time!, we have by passed so many different values and went from - 1 to 1 in this extreme case.... so, this is a non - stationary process. sinus ( oid ) stationary... self - explanatory, given # 3 sum of multiple sinuses with different periods and amplitudes self explanatory given # 1, # 2, # 3 and # 4. if the periods and amplitudes of the components do not change in time, then the constraints between the samples do not change in time, therefore the process will end up stationary. ecg, eeg, ppt and similar i am not really sure what ppt is but ecg and eeg are prime examples of non - stationary signals. why? the ecg represents the electrical activity of the heart. the heart has its own oscillator which is modulated by signals from the brain at every heartbeat! therefore, since the process changes with time ( i. e. the way that the heart beats changes at each heart beat ) then it is considered non - stationary. the same applies for the eeg. the eeg represents a sum of localised electrical activity of neurons in the brain. the brain cannot be considered stationary in time since a human being performs different activities. conversely, if we were to fix the observation window we could claim some form of stationarity. for example, in neuroscience, you can say that 30 subjects were instructed to stay at rest with their eyes closed while eeg recordings were obtained for 30 seconds and then say


that for those specific 30 sec and condition ( rest, eyes closed ) the brain ( as a process ) is assumed to be stationary. chaotic system output. similar to # 6, chaotic systems could be considered stationary over brief periods of time but that's not general. temperature recordings : similar to # 6 and # 7. weather is a prime example of a chaotic process, it cannot be considered stationary for too long. financial indicators : similar to # 6, # 7, # 8, # 9. in general cannot be considered stationary. a useful concept to keep in mind when talking about practical situations is ergodicity. also, there is something that eventually creeps up here and that is the scale of observation. look too close and it's not stationary, look from very far away and everything is stationary. the scale of observation is context dependent. for more information and a large number of illustrating examples as far as the chaotic systems are concenred, i would recommend this book and specifically chapters 1, 6, 7, 10, 12 and 13 which are really central on stationarity and periodicity. hope this helps.