##cgcatagctaacgatcgactagtgatgc atagagctagatcagctacgatagcatcgatcgactacgatcagcatcac this can be a very useful trick when searching a fasta file for a string : tbltofasta file. fa | grep'foo'| fastatotbl if you really want to keep the leading > of the header ( which doesn't seem very useful ), you could do something like this : $ perl - 0pe's / \ n / / g ; s /. > / \ n > / g ; s / $ / \ n / ;'file. fa > sequence1 > sequence2 but that will read the entire file into memory. if that's an issue, add an empty line between each fasta record, and then use perl's paragraph mode to process each " paragraph " ( sequence ) at a time : perl - pe's / > / \ n > /'file. fa | perl - 00pe's / \ n / / g ; s /. > / \ n > / g ; s / $ / \ n / ;'1credit to josep abril who wrote these scripts more than a decade ago.


what does this soft masking actually mean? a lot of the sequence in genomes are repetitive. human genome, for example, has ( at least ) two - third repetitive elements. [ 1 ]. these repetitive elements are soft - masked by converting the upper case letters to lower case. an important use - case of these soft - masked bases will be in homology searches : an atatatatatat will tend to appear both in human and mouse genomes but is likely non - homologous. how confident can i be about the sequence in these regions? as you can be about in non soft - masked based positions. soft - masking is done after determining portions in the genome that are likely repetitive. there is no uncertainty whether a particular base is'a'or'g ', just that it is part of a repeat and hence should be represented as an'a '. what does a lowercase n represent? ucsc uses tandom repeat finder and repeatmasker for soft - masking potential repeats. ncbi most likely uses tantan.'n's represents no sequence information is available for that base. it being replaced by'n'is likely an artifact of the repeat - masking software where it soft - masks an'n'by an'n'to indicate that portion of the genome is likely a repeat too. [ 1 ]


there is a very nice database, pdbcull ( also known as the pisces server in the literature ). it filters the pdb for high resolution and reduced sequence identity. it also seems to be updated regularly. depending on the cut - offs, you get between 3000 and 35000 structures. if you are specifically interested in rotamers, you may want to look at top8000 instead, where they have checked for high resolution, and good molprobity scores. they also provide a rotamer database. pdb also provides their own clustering. they first cluster the sequences, and then extract a representative structure for each one, based on the quality factor ( 1 / resolution - r _ value ). this has the advantage of being comprehensive, but you will have bad structures when no good ones were ever obtained.


proper bypassing and grounding are unfortunately subjects that seem to be poorly taught and poorly understood. they are actually two separate issues. you are asking about the bypassing, but have also implicitly gotten into grounding. for most signal problems, and this case is no exception, it helps to consider them both in the time domain and the frequency domain. theoretically you can analyse in either and convert mathematically to the other, but they each give different insights to the human brain. decoupling provides a near reservoir of energy to smooth out the voltage from very short term changes in current draw. the lines back to the power supply have some inductance, and the power supply takes a little time to respond to a voltage drop before it produces more current. on a single board it can catch up usually within a few microseconds ( us ) or tens of us. however, digital chips can change their current draw a large amount in only a few nanoseconds ( ns ). the decoupling cap has to be close to the digital chip power and ground leads to do its job, else the inductance in those leads gets in the way of it delivering the extra current quickly before the main power feed can catch up. that was the time domain view. in the frequency domain digital chips are ac current sinks between their power and ground pins. at dc power comes from the main power supply and all is fine, so we're going to ignore dc. this current sink generates a wide range of frequencies. some of the frequencies are so high that the little inductance in the relatively long leads to the main power supply start becoming a significant impedance. that means those high frequencies will cause local voltage fluctuations unless they are dealt with. the bypass cap is the low impedance shunt for those high frequencies. again, the leads to the bypass cap must be short else their inductance will be too high and get in the way of the capacitor shorting out the high frequency current generated by the chip. in this view, all your layouts look fine. the cap is close to the power and ground chips in each case. however i don't like any of them for a different reason, and that reason is grounding. good grounding is harder to explain than bypassing. it would take a whole book to really get into this issue, so i'm only going to mention pieces. the first job of grounding is to supply a universal voltage reference, which we usually consider 0v since


everything else is considered relative to the ground net. however, think what happens as you run current thru the ground net. it's resistance isn't zero, so that causes a small voltage difference between different points of the ground. the dc resistance of a copper plane on a pcb is usually low enough so that this is not too much of a issue for most circuits. a purely digital circuit has 100s of mv noise margins at least, so a few 10s or 100s of μv ground offset isn't a big deal. in some analog circuits it is, but that's not the issue i'm trying to get at here. think what happens as the frequency of the current running across the ground plane gets higher and higher. at some point the whole ground plane is only 1 / 2 wavelength across. now you don't have a ground plane anymore but a patch antenna. now remember that a microcontroller is a broad band current source with high frequency components. if you run its immediate ground current across the ground plane for even a little bit, you have a center - fed patch antenna. the solution i usually use, and for which i have quantitative proof it works well, is to keep the local high frequency currents off the ground plane. you want to make a local net of the microcontroller power and ground connections, bypass them locally, then have only one connection to each net to the main system power and ground nets. the high frequency currents generated by the microcontroller go out the power pins, thru the bypass caps, and back into the ground pins. there can be lots of nasty high frequency current running around that loop, but if that loop has only a single connection to the board power and ground nets, then those currents will largely stay off them. so to bring this back to your layout, what i don't like is that each bypass cap seems to have a separate via to power and ground. if these are the main power and ground planes of the board, then that's bad. if you have enough layers and the vias are really going to local power and ground planes, then that's ok as long as those local planes are connected to the main planes at only one point. it doesn't take local planes to do this. i routinely use the local power and ground nets technique even on 2 layer boards. i manually connect all the ground pins and all the power pins, then the bypass caps, then the crystal circuit before routing anything else. these local


nets can be a star or whatever right under the microcontroller and still allow other signals to be routed around them as required. however, once again, these local nets must have exactly one connection to the main board power and ground nets. if you have a board level ground plane, then there will be one via some place to connect the local ground net to the ground plane. i usually go a little further if i can. i put 100 nf or 1 μf ceramic bypass caps as close to the power and ground pins as possible, then route the two local nets ( power and ground ) to a feed point and put a larger ( 10μf usually ) cap across them and make the single connections to the board ground and power nets right at the other side of the cap. this secondary cap provides another shunt to the high frequency currents that escaped being shunted by the individual bypass caps. from the point of view of the rest of the board, the power / ground feed to the microcontroller is nicely behaved without lots of nasty high frequencies. so now to finally address your question of whether the layout you have matters compared to what you think best practices are. i think you have bypassed the power / ground pins of the chip well enough. that means it should operate fine. however, if each has a separate via to the main ground plane then you might have emi problems later. your circuit will run fine, but you might not be able to legally sell it. keep in mind that rf transmission and reception are reciprocal. a circuit that can emit rf from its signals is likewise susceptible to having those signals pick up external rf and have that be noise on top of the signal, so it's not just all someone else's problem. your device may work fine until a nearby compressor is started up, for example. this is not just a theoretical scenario. i've seen cases exactly like that, and i expect many others here have too. here's a anecdote that shows how this stuff can make a real difference. a company was making little gizmos that cost them $ 120 to produce. i was hired to update the design and get production cost below $ 100 if possible. the previous engineer didn't really understand rf emissions and grounding. he had a microprocessor that was emitting lots of rf crap. his solution to pass fcc testing was to enclose the whole mess in a can. he made a 6 layer board with the bottom layer ground, then had a custom


piece of sheet metal soldered over the nasty section at production time. he thought that just by enclosing everything in metal that it wouldn't radiate. that's wrong, but somewhat of a aside i'm not going to get into now. the can did reduce emissions so that they just squeaked by fcc testing with 1 / 2 db to spare ( that's not a lot ). my design used only 4 layers, a single board - wide ground plane, no power planes, but local ground planes for a few of the choice ics with single point connections for these local ground planes and the local power nets as i described. to make a long story shorter, this beat the fcc limit by 15 db ( that's a lot ). a side advantage was that this device was also in part a radio receiver, and the much quieter circuitry fed less noise into the radio and effectively doubled its range ( that's a lot too ). the final production cost was $ 87. the other engineer never worked for that company again. so, proper bypassing, grounding, visualizing and dealing with the high frequency loop currents really matters. in this case it contributed to make the product better and cheaper at the same time, and the engineer that didn't get it lost his job. no, this really is a true story.


i just received a reply from 1000genomes regarding this. i'll post it in its entirety below : looking at the example you mention, i find it difficult to come up with an interpretation of the information whereby the stated end seems to be correct, so believe that this may indeed be an error. since the v4. 0 was created, however, new versions of vcf have been introduced, improving and correcting the specification. the current version is v4. 3 ( i believe the first record shown on page 11 provides an accurate example of this type of deletion. i will update the web page to include this information. so we can take this as official confirmation that we were all correct in suspecting the example was just wrong.


this is a very good question. einstein himself, in a 1907 review ( available in translation as am. j. phys. 45, 512 ( 1977 ), e. g. here ), and planck, one year later, assumed the first and second law of thermodynamics to be covariant, and derived from that the following transformation rule for the temperature : $ $ t'= t / \ gamma, \ quad \ gamma = \ sqrt { 1 / ( 1 - v ^ 2 / c ^ 2 ) }. $ $ so, an observer would see a system in relativistic motion " cooler " than if he were in its rest frame. however, in 1963 ott ( z. phys. 175 no. 1 ( 1963 ) 70 ) proposed as the appropriate transformation $ $ t'= \ gamma t $ $ suggesting that a moving body appears " relatively " warmer. later on landsberg ( nature 213 ( 1966 ) 571 and 214 ( 1967 ) 903 ) argued that the thermodynamic quantities that are statistical in nature, such as temperature, entropy and internal energy, should not be expected to change for an observer who sees the center of mass of the system moving uniformly. this approach, leads to the conclusion that some thermodynamic relationships such as the second law are not covariant and results in the transformation rule : $ $ t'= t $ $ so far it seems there isn't a general consensus on which is the appropriate transformation, but i may be not aware of some " breakthrough " experiment on the topic. main reference : m. khaleghy, f. qassemi. relativistic temperature transformation revisited, one hundred years after relativity theory ( 2005 ). arxiv : physics / 0506214.


there are both biological and social factor for that : biological females have two x chromosomes. when mutations in genes of the x chromosome occur, females have a second x to compensate. males, on the other hand gave just one chromosome x and all genes its genes express themselves, even those lethal or deleterious. females have better resistance to biological aging and hormones and the role of women in reproduction are known to be associated to greater longevity ( e. g. estrogen offers some protection against heart disease because it facilitates elimination of bad cholesterol while testosterone has been linked to violence and risk taking ). the female body evolved to accommodate the needs of pregnancy and breast feeding hence deals better with making reservation. this ability has been linked to a female's better ability to cope with overeating and eliminating excess food social this " advantage " women seem to have was once nullified by the status and life conditions they had back then, as the risks and the burden of pregnancy and the lack of attention to health and rights women had in a way more misogynist world. given the economic, social and political changes that the world experienced, a general progress in female life conditions took place and women have not only regained their biological advantage, but have gone beyond it, achieving higher life expectation. social and comportamental factor are involved in this higher longevity : women tend to engage in fewer risky and bad for health behaviors than men do, e. g. men have more problems than women with alcoholism, smoking and road accidents. the world is still very sexist and the gender roles to be played would expose men to higher risks. regarding to work, for instance, although women nowadays participate in the work force, their professional activities remain different and are less prejudicial to their health ( on average ). also regarding to very sexist gender roles, men are expected to be strong and manly and powerful and women are expected to be gracious young and beautiful. as a result of that, women are more attentive to their body and health, engage themselves in more healthy activities and benefit more from medicine and science. men on the other hand submit their bodies to challenges from early ages and tend to neglect their bodies needs. you can have access to detailed statistics ( male / female, country by country, life expectancy and other health data ) here : and also, read more about the issue here :


both sift and surf authors require license fees for usage of their original algorithms. i have done some research about the situation and here are the possible alternatives : keypoint detector : harris corner detector harris - laplace - scale - invariant version of harris detector ( an affine invariant version also exists, presented by mikolajczyk and schmidt, and i believe is also patent free ). multi - scale oriented patches ( mops ) - athough it is patented, the detector is basically the multi - scale harris, so there would be no problems with that ( the descriptor is 2d wavelet - transformed image patch ) log filter - since the patented sift uses dog ( difference of gaussian ) approximation of log ( laplacian of gaussian ) to localize interest points in scale, log alone can be used in modified, patent - free algorithm, tough the implementation could run a little slower fast brisk ( includes a descriptor ) orb ( includes a descriptor ) kaze - free to use, m - surf descriptor ( modified for kaze's nonlinear scale space ), outperforms both sift and surf a - kaze - accelerated version of kaze, free to use, m - ldb descriptor ( modified fast binary descriptor ) keypoint descriptor : normalized gradient - simple, working solution pca transformed image patch wavelet transformed image patch - details are given in mops paper, but can be implemented differently to avoid the patent issue ( e. g. using different wavelet basis or different indexing scheme ) histogram of oriented gradients gloh lesh brisk orb freak ldb note that if you assign orientation to the interest point and rotate the image patch accordingly, you get rotational invariance for free. even harris corners are rotationally invariant and the descriptor may be made so as well. some more complete solution is done in hugin, because they also struggled to have a patent - free interest point detector.


you have to subclass the rv _ continuous class in scipy. stats import scipy. stats as st class my _ pdf ( st. rv _ continuous ) : def _ pdf ( self, x ) : return 3 * x * * 2 # normalized over its range, in this case [ 0, 1 ] my _ cv = my _ pdf ( a = 0, b = 1, name ='my _ pdf') now my _ cv is a continuous random variable with the given pdf and range [ 0, 1 ] note that in this example my _ pdf and my _ cv are arbitrary names ( that could have been anything ), but _ pdf is not arbitrary ; it and _ cdf are methods in st. rv _ continuous one of which must be overwritten in order for the subclassing to work.


i think linear predictive coding ( otherwise known as an auto - regressive moving average ) is what you are looking for. lpc extrapolates a time series by first fitting a linear model to the time series, in which each sample is assumed to be a linear combination of previous samples. after fitting this model to the existing time series, it can be run forward to extrapolate further values while maintaining a stationary (? ) power spectrum. here is a little example in matlab, using the lpc function to estimate the lpc coefficients. n = 150 ; % order of lpc auto - regressive model p = 500 ; % number of samples in the extrapolated time series m = 150 ; % point at which to start predicting t = 1 : p ; x = 5 * sin ( t / 3. 7 +. 3 ) + 3 * sin ( t / 1. 3 +. 1 ) + 2 * sin ( t / 34. 7 +. 7 ) ; % this is the measured signal a = lpc ( x, n ) ; y = zeros ( 1, p ) ; % fill in the known part of the time series y ( 1 : m ) = x ( 1 : m ) ; % in reality, you would use ` filter ` instead of the for - loop for ii = ( m + 1 ) : p y ( ii ) = - sum ( a ( 2 : end ). * y ( ( ii - 1 ) : - 1 : ( ii - n ) ) ) ; end plot ( t, x, t, y ) ; l = line ( m * [ 1 1 ], get ( gca,'ylim') ) ; set ( l,'color ', [ 0, 0, 0 ] ) ; legend ('actual signal ','extrapolated signal ','start of extrapolation') ; of course, in real code you would use filter to implement the extrapolation, by using the lpc coefficients a as an iir filter and pre - loading the known timeseries values into the filter state ; something like this : % run the initial timeseries through the filter to get the filter state [ ~, zf ] = filter ( - [ 0 a ( 2 : end ) ], 1, x ( 1 : m ) ) ; % now use the filter as an iir to extrapolate y ( ( m + 1 ) : p ) = filter ( [ 0 0 ], -


a, zeros ( 1, p - m ), zf ) ; here is the output : it does a reasonable job, though the prediction dies off with time for some reason. i don't actually know much about ar models and would also be curious to learn more. - - edit : @ china and @ emre are right, the burg method appears to work much better than lpc. simply by changing lpc to arburg in the above code yields the following results : the code is available here :


there's a flaw in jason r's answer, which is discussed in knuth's " art of computer programming " vol. 2. the problem comes if you have a standard deviation which is a small fraction of the mean : the calculation of e ( x ^ 2 ) - ( e ( x ) ^ 2 ) suffers from severe sensitivity to floating point rounding errors. you can even try this yourself in a python script : ofs = 1e9 a = [ ofs + x for x in [ 1, - 1, 2, 3, 0, 4. 02, 5 ] ] a2 = [ x * x for x in a ] ( sum ( a2 ) / len ( a ) ) - ( sum ( a ) / len ( a ) ) * * 2 i get - 128. 0 as an answer, which clearly isn't computationally valid, since the math predicts that the result should be nonnegative. knuth cites an approach ( i don't remember the name of the inventor ) for calculating running mean and standard deviation which goes something like this : initialize : m = 0 ; s = 0 ; n = 0 ; for each incoming sample x : prev _ mean = m ; n = n + 1 ; m = m + ( x - m ) / n ; s = s + ( x - m ) * ( x - prev _ mean ) ; and then after each step, the value of m is the mean, and the standard deviation can be calculated as sqrt ( s / n ) or sqrt ( s / n - 1 ) depending on which is your favorite definition of standard deviation. the equation i write above is slightly different than the one in knuth, but it's computationally equivalent. when i have a few more minutes, i'll code up the above formula in python and show that you'll get a nonnegative answer ( that hopefully is close to the correct value ). update : here it is. test1. py : import math def stats ( x ) : n = 0 s = 0. 0 m = 0. 0 for x _ i in x : n = n + 1 m _ prev = m m = m + ( x _ i - m ) / n s = s + ( x _ i - m ) * ( x _ i - m _ prev ) return {'mean': m,'variance': s / n } def naive _ stats ( x ) : s


##1 = sum ( x ) n = len ( x ) s2 = sum ( [ x _ i * * 2 for x _ i in x ] ) return {'mean': s1 / n,'variance': ( s2 / n - ( s1 / n ) * * 2 ) } x1 = [ 1, - 1, 2, 3, 0, 4. 02, 5 ] x2 = [ x + 1e9 for x in x1 ] print " naive _ stats : " print naive _ stats ( x1 ) print naive _ stats ( x2 ) print " stats : " print stats ( x1 ) print stats ( x2 ) result : naive _ stats : {'variance': 4. 0114775510204073,'mean': 2. 0028571428571427 } {'variance': - 128. 0,'mean': 1000000002. 0028572 } stats : {'variance': 4. 0114775510204073,'mean': 2. 0028571428571431 } {'variance': 4. 0114775868357446,'mean': 1000000002. 0028571 } you'll note that there's still some rounding error, but it's not bad, whereas naive _ stats just pukes. edit : just noticed belisarius's comment citing wikipedia which does mention the knuth algorithm.


i don't think that's really true anymore. some fortran use is historical ( i. e., early codes were developed in fortran because that was the best programming language for number crunching in the 70s and 80s ). heck, the name stands for " formula translation. " some fortran use is because of performance. the language was designed to be : especially suited to numeric computation and scientific computing. many times, i find chemistry coders sticking to fortran because they know it and have existing highly optimized numeric code - bases. i think the performance side isn't necessarily true anymore when using modern, highly optimizing c and c + + compilers. i write a lot of code in c and c + + for performance and glue a lot of things with python. i know some quantum programs are written exclusively or primarily in c + +. here are a few open source examples : psi4 - written in c + + and python mpqc - written in c + + libint - written in c + + for efficient quantum integrals. libxc - written in c with fortran " bindings " for dft exchange - correlation functionals this is my opinion, but my recommendation for faster performance in chemistry would be python with some c or c + + mixed in. i find i'm more efficient coding in python, partly because of the language, partly because of the many packages, partly since i don't have to compile, and that's all important. also, you can run python scripts and functions in parallel, on the gpu, and even compile them, e. g. with numba. as i said, if i think performance is crucial, i'll write pieces in c or usually c + + and link to python as needed.


there are about 100 ( purves, 2001 ) to 400 ( zozulya et al., 2001 ) functional olfactory receptors in man. while the total tally of olfactory receptor genes exceeds 1000, more than half of them are inactive pseudogenes. the combined activity of the expressed functional receptors accounts for the number of distinct odors that can be discriminated by the human olfactory system, which is estimated to be about 10, 000 ( purves, 2001 ). different receptors are sensitive to subsets of chemicals that define a “ tuning curve. ” depending on the particular olfactory receptor molecules they contain, some olfactory receptor neurons exhibit marked selectivity to particular chemical stimuli, whereas others are activated by a number of different odorant molecules. in addition, olfactory receptor neurons can exhibit different thresholds for a particular odorant. how these olfactory responses encode a specific odorant is a complex issue that is unlikely to be explained at the level of the primary neurons ( purves, 2001 ). so in a way, the answer to your question is yes, as there are approximately 100 to 400 olfactory receptors. just like the photoreceptors in the visual system, each sensory neuron in the olfactory epithelium in the nose expresses only a single receptor gene ( kimball ). in the visual system for color vision there are just three ( red, green and blue cones - rgb ) types of sensory neurons, so it's a bit more complicated in olfaction. references - purves et al, neuroscience, 2nd ed. sunderland ( ma ) : sinauer associates ; 2001 - zozulya et al., genome biol ( 2001 ) ; 2 ( 6 ) : research0018. 1 – 0018. 12 sources - kimball's biology pages


it just means that you can create levels or puzzles within these games that encode np - hard problems. you can take a graph coloring problem, create an associated super mario bros. level, and that level is beatable if and only if the graph is 3 - colorable. if you want to see the specific way the np - complete problems are translated into the games, i recommend the paper " classic nintendo games are ( computationally ) hard ". it's well written and easy to follow. an important caveat to keep in mind is that the np - hardness requires generalizing the games in " obvious " ways. for example, tetris normally has a fixed size board but the hardness proof requires the game to allow arbitrarily large boards. another example is off - screen enemies in super mario bros : the proof is for a variant of the game where off - screen enemies continue moving as if they were onscreen, instead of ceasing to exist and being reset to their starting position when mario comes back.


in programming language design and implementation, there is a large number of choices that can affect performance. i'll only mention a few. every language ultimately has to be run by executing machine code. a " compiled " language such as c + + is parsed, decoded, and translated to machine code only once, at compile - time. an " interpreted " language, if implemented in a direct way, is decoded at runtime, at every step, every time. that is, every time we run a statement, the intepreter has to check whether that is an if - then - else, or an assignment, etc. and act accordingly. this means that if we loop 100 times, we decode the same code 100 times, wasting time. fortunately, interpreters often optimize this through e. g. a just - in - time compiling system. ( more correctly, there's no such a thing as a " compiled " or " interpreted " language - - it is a property of the implementation, not of the language. still, each language often has one widespread implementation, only. ) different compilers / interpreters perform different optimizations. if the language has automatic memory management, its implementation has to perform garbage collection. this has a runtime cost, but relieves the programmer from an error - prone task. a language might be closer to the machine, allowing the expert programmer to micro - optimize everything and squeeze more performance out of the cpu. however, it is arguable if this is actually beneficial in practice, since most programmers do not really micro - optimize, and often a good higher level language can be optimized by the compiler better than what the average programmer would do. ( however, sometimes being farther from the machine might have its benefits too! for instance, haskell is extremely high level, but thanks to its design choices is able to feature very lightweight green threads. ) static type checking can also help in optimization. in a dynamically typed, interpreted language, every time one computes x - y, the interpreter often has to check whether both x, y are numbers and ( e. g. ) raise an exception otherwise. this check can be skipped if types were already checked at compile time. some languages always report runtime errors in a sane way. if you write a [ 100 ] in java where a has only 20 elements, you get a runtime exception. this requires a runtime check, but provides a much nicer semantics to


the programmer than in c, where that would cause undefined behavior, meaning that the program might crash, overwrite some random data in memory, or even perform absolutely anything else ( the iso c standard poses no limits whatsoever ). however, keep in mind that, when evaluating a language, performance is not everything. don't be obsessed about it. it is a common trap to try to micro - optimize everything, and yet fail to spot that an inefficient algorithm / data structure is being used. knuth once said " premature optimization is the root of all evil ". don't underestimate how hard it is to write a program right. often, it can be better to choose a " slower " language which has a more human - friendly semantics. further, if there are some specific performance critical parts, those can always be implemented in another language. just as a reference, in the 2016 icfp programming contest, these were the languages used by the winners : 1 700327 unagi java, c + +, c #, php, haskell 2 268752 天 c + +, ruby, python, haskell, java, javascript 3 243456 cult of the bound variable c + +, standard ml, python none of them used a single language.


i think the answer to your first question is simply in the affirmative. take any issue of statistical science, jasa, annals of statistics of the past 10 years and you'll find papers on boosting, svm, and neural networks, although this area is less active now. statisticians have appropriated the work of valiant and vapnik, but on the other side, computer scientists have absorbed the work of donoho and talagrand. i don't think there is much difference in scope and methods any more. i have never bought breiman's argument that cs people were only interested in minimizing loss using whatever works. that view was heavily influenced by his participation in neural networks conferences and his consulting work ; but pac, svms, boosting have all solid foundations. and today, unlike 2001, statistics is more concerned with finite - sample properties, algorithms and massive datasets. but i think that there are still three important differences that are not going away soon. methodological statistics papers are still overwhelmingly formal and deductive, whereas machine learning researchers are more tolerant of new approaches even if they don't come with a proof attached ; the ml community primarily shares new results and publications in conferences and related proceedings, whereas statisticians use journal papers. this slows down progress in statistics and identification of star researchers. john langford has a nice post on the subject from a while back ; statistics still covers areas that are ( for now ) of little concern to ml, such as survey design, sampling, industrial statistics etc.


there's rarely a good reason to use a hard - masked genome ( sometimes for blast, but that's it ). for that reason, we use soft - masked genomes, which only have the benefit of showing roughly where repeats are ( we never make use of this for our * - seq experiments, but it's there in case we ever want to ). for primary vs. toplevel, very few aligners can properly handle additional haplotypes. if you happen to be using bwa, then the toplevel assembly would benefit you, but only if you use a dedicated wrapper to handle the alt information, see bwakit. if you use bwa ( bwa - mem ) right from the command line without this wrapper then do not use the toplevel assembly. for star / hisat2 / bowtie2 / bbmap / etc. the haplotypes will just cause you problems due to increasing multimapper rates incorrectly. note that none of these actually use soft - masking.


the problem is that people are often sloppy with the definition of quantities. the equilibrium constant $ k $ in your first equation is indeed a dimensionless quantity while the equilibrium constant $ k _ c $ that is usually used to describe an equilibrium in a solution is not. i will take some detour to show where they come from and how they are connected. from thermodynamics it is known that the gibbs free energy of reation is given by \ begin { equation } \ delta g = \ left ( \ frac { \ partial g } { \ partial \ xi } \ right ) _ { p, t } = \ sum \ nu _ { i } \ mu _ { i } \, \ end { equation } where $ \ xi $ is the extent of reaction and $ \ nu _ { i } $ and $ \ mu _ { i } $ are the stochiometric coefficient and the chemical potential of the $ i ^ { \ text { th } } $ component in the reaction, respectively. now, imagine the situation for a ideal system consisting of two phases, one purely consisting of component $ i $ and the other being a mixed phase comprised of components $ 1, 2, \ dots, k $, in equilibrium. since the system is in equilibrium and shows ideal behavior we know that the chemical potential of component $ i $ in the mixed phase ( having the temperature $ t $ and the total pressure $ p $ ), $ \ mu _ { i } ( p, t ) $, must be equal to the chemical potential, $ \ mu ^ { * } _ { i } ( p _ { i }, t ) $, of the pure phase having the same temperature but a different pressure $ p _ { i } $, whereby $ p _ { i } $ is equal to the partial pressure of component $ i $ in the mixed phase, namely \ begin { equation } \ mu _ { i } ( p, t ) = \ mu ^ { * } _ { i } ( p _ { i }, t ). \ end { equation } from maxwell's relations it is known that \ begin { equation } \ left ( \ frac { \ partial \ mu ^ { * } _ { i } } { \ partial p } \ right ) _ { t } = \ left ( \ frac { \ partial } { \ partial p } \ biggl ( \ frac { \ partial g ^ { * } } { \ partial n _ { i }


} \ biggr ) \ right ) _ { t } = \ biggl ( \ frac { \ partial } { \ partial n _ { i } } \ underbrace { \ biggl ( \ frac { \ partial g ^ { * } _ { i } } { \ partial p } \ biggr ) } _ { = \, v _ { i } } \ biggr ) _ { t } = \ left ( \ frac { \ partial v _ { i } } { \ partial n _ { i } } \ right ) _ { t } \ end { equation } but since $ \ mu ^ { * } _ { i } $ is associated with a pure phase, $ \ left ( \ frac { \ partial v _ { i } } { \ partial n _ { i } } \ right ) _ { t } $ can be simplified to \ begin { equation } \ left ( \ frac { \ partial v _ { i } } { \ partial n _ { i } } \ right ) _ { t } = \ frac { v _ { i } } { n _ { i } } = v _ { i } \ end { equation } and one gets \ begin { equation } \ left ( \ frac { \ partial \ mu ^ { * } _ { i } } { \ partial p } \ right ) _ { t } = v _ { i } \, \ end { equation } where $ p $ is the total pressure and $ v _ i $ is the molar volume of the $ i ^ { \ text { th } } $ component in the pure phase. substituting $ v _ { i } $ via the ideal gas law and subsequently integrating this equation w. r. t. pressure using the total pressure $ p $ as the upper and the partial pressure $ p _ { i } $ as the lower bound for the integration we get \ begin { equation } \ int ^ { \ mu ^ { * } _ { i } ( p ) } _ { \ mu ^ { * } _ { i } ( p _ { i } ) } \ mathrm { d } \ mu ^ { * } _ { i } = \ int _ { p _ { i } } ^ { p } \ underbrace { v _ { i } } _ { = \ frac { rt } { p } } \ mathrm { d } p = r t \ int _ { p _ { i } }


^ { p } \ frac { 1 } { p } \ mathrm { d } p = rt \ int _ { p _ { i } } ^ { p } \ mathrm { d } \ ln p \, \ end { equation } so that, introducing the mole fraction $ x _ { i } $, \ begin { equation } \ mu _ { i } ^ { * } ( p _ { i }, t ) = \ mu _ { i } ^ { * } ( p, t ) + rt \ ln \ bigl ( \ underbrace { \ frac { p _ { i } } { p } } _ { = x _ { i } } \ bigr ) = \ mu _ { i } ^ { * } ( p, t ) + rt \ ln x _ { i } \. \ end { equation } please, note that there is a dimensionless quantity inside the logarithm. now, for real gases one has to adjust this equation a little bit : one has to correct the pressure for the errors introduced by the interactions present in real gases. thus, one introduces the ( dimensionless ) activity $ a _ { i } $ by scaling the pressure with the ( dimensionless ) fugacity coefficient $ \ varphi _ { i } $ \ begin { equation } a _ { i } = \ frac { \ varphi _ { i } p _ { i } } { p ^ 0 } \ end { equation } where $ p ^ { 0 } $ is the standard pressure for which $ \ varphi _ { i } = 1 $ by definition. when this is in turn substituted into the equilibrium equation, whereby the total pressure is chosen to be the standard pressure $ p = p ^ { 0 } $, the following equation arises \ begin { equation } \ mu _ { i } ( p, t ) = \ underbrace { \ mu _ { i } ^ { * } ( p ^ { 0 }, t ) } _ { = \, \ mu _ { i } ^ { 0 } } + rt \ ln a _ { i } \. \ end { equation } substituting all this togther in our equation for $ \ delta g $ and noting that the sum of logarithms can be written as a logarithm of products, $ \ sum _ { i } \ ln i = \ ln \ prod _ i i $, one gets


\ begin { equation } \ delta g = \ underbrace { \ sum _ i \ nu _ { i } \ mu _ { i } ^ { 0 } } _ { = \, \ delta g ^ { 0 } } + rt \ underbrace { \ sum _ i \ nu _ { i } \ ln a _ { i } } _ { = \, \ ln \ prod _ { i } [ a _ { i } ] ^ { \ nu _ { i } } } = \ delta g ^ { 0 } + rt \ ln \ prod _ { i } [ a _ { i } ] ^ { \ nu _ { i } } \, \ end { equation } where the standard gibbs free energy of reaction $ \ delta g ^ { 0 } $ has been introduced by asserting that the system is under standard pressure. now, we are nearly finished. one only has to note that $ \ delta g = 0 $ since the system is in equilibrium and then one can introduce the equilibrium constant $ k $, so that \ begin { equation } \ ln \ underbrace { \ prod _ i [ a _ { i } ] ^ { \ nu _ { i } } } _ { = \, k } = - \ frac { \ delta g ^ { 0 } } { rt } \ qquad \ rightarrow \ qquad \ ln k = - \ frac { \ delta g ^ { 0 } } { rt } \. \ end { equation } so, you see this quantity is dimensionless. the problem is that activities are hard to come by. concentrations $ c _ { i } $ or pressures are much easier to measure. so, what one does now, is to introduce a different equilibrium constant \ begin { equation } k _ { c } = \ prod _ i [ c _ { i } ] ^ { \ nu _ { i } } \. \ end { equation } which is much easier to measure since it depends on concentrations rather than activities. it is not dimensionless but being connected with the " real " dimensionless equilibrium constant via \ begin { equation } k = \ prod _ i [ \ varphi _ { i } ] ^ { \ nu _ { i } } \ left ( \ frac { rt } { p ^ { 0 } } \ right ) ^ { \ sum _ i \ nu _ { i } } k _ { c } \. \ end


{ equation } it is more or less proportional to $ k $ and thus gives qualitatively the same information. edit : if the solution at hand behaves like an ideal solution then by definition it's activity / fugacity coefficient is equal to one. furthermore the state of ideality is defined with respect to standard states : for an ideal solution this is $ c ^ { \ ominus } = 1 \, \ text { mol } / \ text { l } $. using this together with the ideal gas law on the relation between $ k $ and $ k _ { c } $ \ begin { equation } k = \ prod _ i [ \ underbrace { \ varphi _ { i } } _ { = \, 1 } ] ^ { \ nu _ { i } } \ bigl ( \ underbrace { \ frac { rt } { p ^ { 0 } } } _ { \ substack { = \, 1 / c ^ { \ ominus } \, = \, 1 \, \ text { l } / \ text { mol } \ \ \ text { per definition } } } \ bigr ) ^ { \ sum _ i \ nu _ { i } } k _ { c } \ qquad \ rightarrow \ qquad k = \ left ( \ frac { l } { \ text { mol } } \ right ) ^ { \ sum _ i \ nu _ { i } } k _ { c } \. \ end { equation } one sees that for an ideal solution $ k _ { c } $ is identical to $ k $ scaled by a dimensional prefactor. edit : i forgot to mention there are also " versions " of the equilibrium constants that are defined in terms of partial pressures or mole fractions which provide a more suitable description for gas equlibria but all those " versions " can be traced back to the original equilibrium constant.


first, has anybody ever seen anything at all like this before? yes, and in fact the interesting patterns that arise here are more than just a mathematical curiosity, they can be interpreted to have a physical context. statistical mechanics in a simple spin system, say the ising model, a discrete set of points are arranged on a grid. in physics, we like to define the energy of the system by the hamiltonian, which gives the energy of any particular microstate. in this system, if the spins are aligned they form a bond. this favorable and the energy is negative. if they are misaligned, the energy is positive. let's consider a simple system of two points, adjacent to each other. furthermore, let each site point up ( 1 ) or down ( - 1 ). for an ising - like system we would write the hamiltonian as : $ $ h = - \ sum _ { ij } j \ sigma _ i \ sigma _ j $ $ where $ \ sigma _ i $ is the spin of the $ i $ th point and the summation runs over all pairs of adjacent sites. $ j $ is the strength of the bond ( which we can set to one for our example ). in our simple system we have only four possible states : 0 - 0 h = - j 1 - 0 h = 0 0 - 1 h = 0 1 - 1 h = - j now we can write the partition function $ \ mathcal { z } $, a term which encompasses all information of the hamiltonian from the perspective of statistical mechanics : $ $ \ mathcal { z } = \ sum _ s \ exp ( h ( s ) / kt ) $ $ here the summation runs over all possible ( micro ) states of the system. the partition function is really useful as it is related to the free energy $ a = - kt \ ln { \ mathcal { z } } $. when the partition function goes to zero, the free energy explodes and this signifies a phase change - a physically interesting event. what about our simple system? $ $ \ mathcal { z } = 2 \ exp ( { \ beta j } ) + 2 = 2x + 2 $ $ you'll notice that i changed $ x = \ exp ( { \ beta j } ) $ to make things a little neater. you may also notice that $ \ mathcal { z } $ looks like polynomial. which means if we want to find the interesting events in


the system we find the zeros of the partition function $ \ mathcal { z } = 0 $. this zero will correspond to a particular temperature $ t $. in this case the only temperature we get is a complex one... complex temperatures? before you discount the idea that a temperature not on the real number line is impossible ( and that $ t < 0 $ is strange as well ), let's see where this takes us. if we continue the to add sites to our simple little system, our polynomial will get a bit more complicated and we will find more roots on the complex plane. in fact, as we take ever more roots the points appear to form a pattern, much like the pattern you've shown above. for a finite spin system, you'll never find a zero on the real axis, however... anybody have any idea what happens to the solution set as n→∞? at the thermodynamic limit ( which corresponds to an infinite number of sites ) the points become dense on the plane. at this limit the points can touch the real axis ( corresponding to a phase change in the system ). for example, in the 2d ising model the points do touch the real axis ( and make a beautiful circle on the complex plane ) where the system undergoes a phase transition from ordered to disordered. prior work the study of these zeros ( from a physics perspective ) is fascinating and started with the seminal papers by yang and lee : yang, c. n. ; lee, t. d. ( 1952 ), " statistical theory of equations of state and phase transitions. i. theory of condensation ", physical review 87 : 404 – 409, doi : 10. 1103 / physrev. 87. 404 lee, t. d. ; yang, c. n. ( 1952 ), " statistical theory of equations of state and phase transitions. ii. lattice gas and ising model ", physical review 87 : 410 – 419, doi : 10. 1103 / physrev. 87. 410 which are surprisingly accessible. for a good time, search for images of yang - lee zeros. in addition you can extend the fugacity to the complex plane, these are called the fisher zeros and make even more complex patterns!


i'm extremely skeptical of @ leonardo's answer. i suspect that what would happen if you drank only distilled water is nothing perceptible. the only place where concentrations of distilled water would ever be high enough to conceivably matter is in the tissues of the mouth and throat, and even there, the effect would be temporary. compare drinking 8 glasses of either distilled or tap water every day. with tap water, you're looking at less than 200 ppm of mg, na, k, and ca combined. that's less than 400mg of total mineral content per day. given that the combined rda of all of those minerals is on the order of 7g for an adult male, this is not nothing, but it's certainly small. your dietary intake of these minerals probably varies by more than this daily, and your intestines, kidneys, sweat glands and mineral storage organs ( like your bones and muscles ) are constantly maintaining the mineral blood levels within a very narrow range, despite handling a throughput of several pounds of water and food daily. they might have to work slightly harder to manage this range if you drank nothing but distilled water, but in a healthy adult, normal intakes already vary by more than this amount without major problems. for example, the average american consumes more than 3. 4 grams of sodium daily, while a low - sodium diet is on the order of 2g. low - sodium diets have been widely studied in the medical literature, and are considered safe. as for ph, the lowered ph is caused by increased carbon - dioxide absorption to form carbonic acid. just as carbon dioxide is more soluble in distilled water, it is less soluble in stomach acid, and may be burped out. would you die of acidosis from drinking seltzer water all the time? if that were the case, i'm sure there would be big health warnings about drinking soda, while it seems relatively benign. furthermore, your body produces and excretes ( through the lungs ) around 1kg of co2 daily, dwarfing any extra co2 you might get by drinking distilled water. if the small amounts of co2 found in distilled water were dangerous, jogging would be invariably fatal. if you were to drink nothing but distilled water, and eat no food, you probably would die of hyponatremia within a few weeks. but you would also die of hypona


##tremia if you were to drink nothing but tap water, though perhaps slightly more slowly.


first of all, there's no reason that an agent has to do the greedy action ; agents can explore or they can follow options. this is not what separates on - policy from off - policy learning. the reason that q - learning is off - policy is that it updates its q - values using the q - value of the next state $ s'$ and the greedy action $ a'$. in other words, it estimates the return ( total discounted future reward ) for state - action pairs assuming a greedy policy were followed despite the fact that it's not following a greedy policy. the reason that sarsa is on - policy is that it updates its q - values using the q - value of the next state $ s'$ and the current policy's action $ a'' $. it estimates the return for state - action pairs assuming the current policy continues to be followed. the distinction disappears if the current policy is a greedy policy. however, such an agent would not be good since it never explores. have you looked at the book available for free online? richard s. sutton and andrew g. barto. reinforcement learning : an introduction. second edition, mit press, cambridge, ma, 2018.


historically, when leibniz conceived of the notation, $ \ frac { dy } { dx } $ was supposed to be a quotient : it was the quotient of the " infinitesimal change in $ y $ produced by the change in $ x $ " divided by the " infinitesimal change in $ x $ ". however, the formulation of calculus with infinitesimals in the usual setting of the real numbers leads to a lot of problems. for one thing, infinitesimals can't exist in the usual setting of real numbers! because the real numbers satisfy an important property, called the archimedean property : given any positive real number $ \ epsilon \ gt 0 $, no matter how small, and given any positive real number $ m \ gt 0 $, no matter how big, there exists a natural number $ n $ such that $ n \ epsilon \ gt m $. but an " infinitesimal " $ \ xi $ is supposed to be so small that no matter how many times you add it to itself, it never gets to $ 1 $, contradicting the archimedean property. other problems : leibniz defined the tangent to the graph of $ y = f ( x ) $ at $ x = a $ by saying " take the point $ ( a, f ( a ) ) $ ; then add an infinitesimal amount to $ a $, $ a + dx $, and take the point $ ( a + dx, f ( a + dx ) ) $, and draw the line through those two points. " but if they are two different points on the graph, then it's not a tangent, and if it's just one point, then you can't define the line because you just have one point. that's just two of the problems with infinitesimals. ( see below where it says " however... ", though. ) so calculus was essentially rewritten from the ground up in the following 200 years to avoid these problems, and you are seeing the results of that rewriting ( that's where limits came from, for instance ). because of that rewriting, the derivative is no longer a quotient, now it's a limit : $ $ \ lim _ { h \ to0 } \ frac { f ( x + h ) - f ( x ) } { h }. $ $ and because we cannot express this limit -


of - a - quotient as a - quotient - of - the - limits ( both numerator and denominator go to zero ), then the derivative is not a quotient. however, leibniz's notation is very suggestive and very useful ; even though derivatives are not really quotients, in many ways they behave as if they were quotients. so we have the chain rule : $ $ \ frac { dy } { dx } = \ frac { dy } { du } \ ; \ frac { du } { dx } $ $ which looks very natural if you think of the derivatives as " fractions ". you have the inverse function theorem, which tells you that $ $ \ frac { dx } { dy } = \ frac { 1 } { \ quad \ frac { dy } { dx } \ quad }, $ $ which is again almost " obvious " if you think of the derivatives as fractions. so, because the notation is so nice and so suggestive, we keep the notation even though the notation no longer represents an actual quotient, it now represents a single limit. in fact, leibniz's notation is so good, so superior to the prime notation and to newton's notation, that england fell behind all of europe for centuries in mathematics and science because, due to the fight between newton's and leibniz's camp over who had invented calculus and who stole it from whom ( consensus is that they each discovered it independently ), england's scientific establishment decided to ignore what was being done in europe with leibniz notation and stuck to newton's... and got stuck in the mud in large part because of it. ( differentials are part of this same issue : originally, $ dy $ and $ dx $ really did mean the same thing as those symbols do in $ \ frac { dy } { dx } $, but that leads to all sorts of logical problems, so they no longer mean the same thing, even though they behave as if they did. ) so, even though we write $ \ frac { dy } { dx } $ as if it were a fraction, and many computations look like we are working with it like a fraction, it isn't really a fraction ( it just plays one on television ). however... there is a way of getting around the logical


difficulties with infinitesimals ; this is called nonstandard analysis. it's pretty difficult to explain how one sets it up, but you can think of it as creating two classes of real numbers : the ones you are familiar with, that satisfy things like the archimedean property, the supremum property, and so on, and then you add another, separate class of real numbers that includes infinitesimals and a bunch of other things. if you do that, then you can, if you are careful, define derivatives exactly like leibniz, in terms of infinitesimals and actual quotients ; if you do that, then all the rules of calculus that make use of $ \ frac { dy } { dx } $ as if it were a fraction are justified because, in that setting, it is a fraction. still, one has to be careful because you have to keep infinitesimals and regular real numbers separate and not let them get confused, or you can run into some serious problems.


i agree that the windowing filter design method is not one of the most important design methods anymore, and it might indeed be the case that it is overrepresented in traditional textbooks, probably due to historical reasons. however, i think that its use can be justified in certain situations. i do not agree that computational complexity is no issue anymore. this depends on the platform. sitting at our desktop computer and designing a filter, we indeed don't need to worry about complexity. however, on specific platforms and in situations where the design needs to be done in quasi - realtime, computational complexity is an issue, and a simple suboptimal design technique will be preferred over an optimal technique that is much more complex. as an example, i once worked on a system for beamforming where the filter ( beamformer ) would need to be re - designed on the fly, and so computational complexity was indeed an issue. i'm also convinced that in many practical situations we don't need to worry about the difference between the optimal and the suboptimal design. this becomes even more true if we need to use fixed - point arithmetic with quantized coefficients and quantized results of arithmetic operations. another issue is the numerical stability of the optimal filter design methods and their implementations. i've come across several cases where the parks - mcclellan algorithm ( i should say, the implementation i used ) did simply not converge. this will happen if the specification doesn't make much sense, but it can also happen with totally reasonable specs. the same is true for the least squares design method where a system of linear equations needs to be solved, which can become an ill - conditioned problem. under these circumstances, the windowing method will never let you down. a remark about your comparison between the window method and the least squares design : i do not think that this comparison shows any general superiority of the least squares method over the windowing method. first, you seem to look at stop band attenuation, which is no design goal for either of the two methods. the windowing method is not optimal in any sense, and the least squares design minimizes the stop band energy, and doesn't care at all about stop band ripple size. what can be seen is that the pass band edge of the window design is larger than the one of the least squares design, whereas the stop band edge is smaller. consequently, the transition band width of the filter designed by windowing is smaller which will result in higher stop band ripple


##s. the difference in transition band width may be small, but filter properties are very sensitive to this parameter. there is no doubt that the least squares filter outperforms the other filter when it comes to stop band energy, but that's not as easy to see as ripple size. and the question remains if that difference would actually make a difference in a practical application. let me show you that such comparisons can often be made to look the way one would like them to look. in the figure below i compare a least squares optimal low pass filter designed with the matlab / octave function firls. m ( blue ) to a low pass filter designed with the window method using a kaiser window ( red ). from the figure, one could even conclude that the filter designed by windowing is slightly better than the least squares optimal filter. this is of course non - sense because we didn't even define " better ", and the least squares filter must have a smaller mean squared approximation error. however, you don't see that directly in the figure. anyway, this is just to support my claim that one must be very careful and clear when doing such comparisons. in sum, apart from being useful to learn for dsp students for purely didactical reasons, i think that despite the technological advances since the 1970's the use of the windowing method can be justified in certain practical scenarios, and i don't think that that will change very soon.


this is one of those terribly simple questions which is also astonishingly insightful and surprisingly a big deal in physics. i'd like to commend you for the question! the classical mechanics answer is " because we say it doesn't. " one of the peculiarities about science is that it doesn't tell you the true answer, in the philosophical sense. science provides you with models which have a historical track record of being very good at letting you predict future outcomes. particles do not apply forces to themselves in classical mechanics because the classical models which were effective for predicting the state of systems did not have them apply forces. now one could provide a justification in classical mechanics. newton's laws state that every action has an equal and opposite reaction. if i push on my table with 50n of force, it pushes back on me with 50n of force in the opposite direction. if you think about it, a particle which pushes on itself with some force is then pushed back by itself in the opposite direction with an equal force. this is like you pushing your hands together really hard. you apply a lot of force, but your hands don't move anywhere because you're just pushing on yourself. every time you push, you push back. now it gets more interesting in quantum mechanics. without getting into the details, in quantum mechanics, we find that particles do indeed interact with themselves. and they have to interact with their own interactions, and so on and so forth. so once we get down to more fundamental levels, we actually do see meaningful self - interactions of particles. we just don't see them in classical mechanics. why? well, going back to the idea of science creating models of the universe, self - interactions are messy. qm has to do all sorts of clever integration and normalization tricks to make them sane. in classical mechanics, we didn't need self - interactions to properly model how systems evolve over time, so we didn't include any of that complexity. in qm, we found that the models without self - interaction simply weren't effective at predicting what we see. we were forced to bring in self - interaction terms to explain what we saw. in fact, these self - interactions turn out to be a real bugger. you may have heard of " quantum gravity. " one of the things quantum mechanics does not explain very well is gravity. gravity on these scales is typically too small to measure directly, so we can only infer what it should do. on the other end


of the spectrum, general relativity is substantially focused on modeling how gravity works on a universal scale ( where objects are big enough that measuring gravitational effects is relatively easy ). in general relativity, we see the concept of gravity as distortions in space time, creating all sorts of wonderful visual images of objects resting on rubber sheets, distorting the fabric it rests on. unfortunately, these distortions cause a huge problem for quantum mechanics. the normalization techniques they use to deal with all of those self - interaction terms don't work in the distorted spaces that general relativity predicts. the numbers balloon and explode off towards infinity. we predict infinite energy for all particles, and yet there's no reason to believe that is accurate. we simply cannot seem to combine the distortion of space time modeled by einstein's relativity and the self - interactions of particles in quantum mechanics. so you ask a very simple question. it's well phrased. in fact, it is so well phrased that i can conclude by saying the answer to your question is one of the great questions physics is searching for to this very day. entire teams of scientists are trying to tease apart this question of self - interaction and they search for models of gravity which function correctly in the quantum realm!


tail recursion is a special case of recursion where the calling function does no more computation after making a recursive call. for example, the function int f ( int x, int y ) { if ( y = = 0 ) { return x ; } return f ( x * y, y - 1 ) ; } is tail recursive ( since the final instruction is a recursive call ) whereas this function is not tail recursive : int g ( int x ) { if ( x = = 1 ) { return 1 ; } int y = g ( x - 1 ) ; return x * y ; } since it does some computation after the recursive call has returned. tail recursion is important because it can be implemented more efficiently than general recursion. when we make a normal recursive call, we have to push the return address onto the call stack then jump to the called function. this means that we need a call stack whose size is linear in the depth of the recursive calls. when we have tail recursion we know that as soon as we return from the recursive call we're going to immediately return as well, so we can skip the entire chain of recursive functions returning and return straight to the original caller. that means we don't need a call stack at all for all of the recursive calls, and can implement the final call as a simple jump, which saves us space.


introduce the vector $ y : = - a ^ { - 1 } gx $ and solve the large coupled system $ ay + gx = 0 $, $ g ^ ty = - b $ for $ ( y, x ) $ simultaneously, using an iterative method. if $ a $ is symmetric ( as seems likely though you don't state it explicitly ) then the system is symmetric ( but indefinite, though quasidefinite if $ a $ is positive definite ), which might help you to choose an appropriate method. ( relevant keywords : kkt matrix, quasidefinite matrix ). edit : as $ a $ is complex symmetric, so is the augmented matrix, but there is no quasidefiniteness. you can however use the $ ax $ routine to compute $ a ^ * x = \ overline { a \ overline x } $ ; therefore you could adapt a method such as qmr ftp : / / ftp. math. ucla. edu / pub / camreport / cam92 - 19. pdf ( designed for real systems, but you can easily rewrite it for complex systems, using the adjoint in place of the transpose ) to solve your problem. edit2 : actually, the ( 0, 1 ) - structure of $ g $ means that you can eliminate $ x $ amd the components of $ g ^ ty $ symbolically, thus ending up with a smaller system to solve. this means messing with the structure of $ a $, and pays only when $ a $ is given explicitly in sparse format rather than as a linear operator.


the standard deviation calculated with a divisor of $ n - 1 $ is a standard deviation calculated from the sample as an estimate of the standard deviation of the population from which the sample was drawn. because the observed values fall, on average, closer to the sample mean than to the population mean, the standard deviation which is calculated using deviations from the sample mean underestimates the desired standard deviation of the population. using $ n - 1 $ instead of $ n $ as the divisor corrects for that by making the result a little bit bigger. note that the correction has a larger proportional effect when $ n $ is small than when it is large, which is what we want because when n is larger the sample mean is likely to be a good estimator of the population mean. when the sample is the whole population we use the standard deviation with $ n $ as the divisor because the sample mean is population mean. ( i note parenthetically that nothing that starts with " second moment recentered around a known, definite mean " is going to fulfil the questioner's request for an intuitive explanation. )


the art of electronics : paul horowitz and winfield hill often described as the bible of electronics. its fair to say that if you buy this one, you wont need another for a while! contents : foundations voltage and current ; passive components ; signals ; complex analysis made simple. transistors an easy - to - use transistor model extensive discussion of useful subcircuits, such as followers, switches, current sources, current mirrors, differential amplifiers, push - pull, cascode. field effect transistors jfets and mosfets : types and properties ; low - level and power applications ; fet vs bipolar transistors ; esd. how to design amplifiers, buffers, current sources, gain controls, and logic switches. everything you wanted to know about analog switching - - feedthrough and crosstalk, bandwidth and speed, charge injection, nonlinearities, capacitance and on - resistance, latchup. feedback and operational amplifiers " golden rules " for simple design, followed by in - depth treatment of real op - amp properties. circuit smorgasbord ; design tradeoffs and cautions. easy to understand discussion of single - supply op - amp design and op - amp frequency compensation. special topics such as active rectifiers, logarithmic converters, peak detectors, dielectric absorption. active filters and oscillators simplified design of active filters, with tables and graphs. design of constant - q and constant - bw filters, switched - capacitor filters, zero - offset lpfs, single - control tunable notch. oscillators : relaxation, vco, rf vco, quadrature, switched - capacitor, function generator, lookup table, state - variable, wein bridge, lc, parasitic, quartz crystal, ovenized. voltage regulators and power circuits discrete and integrated regulators, current sources and current sensing, crowbars, ground meccas. power design : parallel operation of bipolar and mosfet transistors, soa, thermal design and heatsinking. voltage references : bandgap / zener : stability and noise ; integrated / discrete. all about switching supplies : configurations, design, and examples. flying - capacitor, high - voltage, low - power, and ultra stable power supplies. full analysis of a commercial line - powered switcher. precision circuits and low - noise techniques an easy - to - use section on precision linear design. a section on noise, shielding,


and grounding. a unique graphical method for streamlined low - noise amplifier analysis. autonulling amplifiers, instrumentation amplifiers, isolation amplifiers. digital electronics combinational and sequential design with standard ics, and with plds. all you wanted to know about timing, logic races, runt pulses, clocking skew, and metastable states. monostable multivibrators and their idiosyncrasies. a collection of digital logic pathology, and what to do about it. digital meets analog an extensive discussion of interfacing between logic families, and between logic and the outside world. a detailed discussion of a / d and d / a conversion techniques. digital noise generation. an easy - to - understand discussion of phase - locked loops, with design examples and applications. optoelectronics : emitters, detectors, couplers, displays, fiber optics. driving buses, capacitive loads, cables, and the outside world. microcomputers ibm pc and intel family : assembly language, bus signals, interfacing ( with many examples ). programmed i / o, interrupts, status registers, dma. rs - 232 cables that really work. serial ports, ascii, and modems. scsi, ipi, gpib, parallel ports. local - area networks. microprocessors 68000 family : actual design examples and discussion - - how to design them into instruments, and how to make them do what you want. complete general - purpose instrument design, with programming. peripheral lsi chips ; serial and parallel ports ; d / a and a / d converters. memory : how to choose it, how to use it. electronic construction techniques prototyping methods. printed - circuit and wire - wrap design, both manual and cad. instrument construction : motherboards, enclosures, controls, wiring, accessibility, cooling. electrical and construction hints. high - frequency and high - speed techniques transistor high - frequency design made simple. modular rf components - - amplifiers, mixers, hybrids, etc. modulation and detection. simplified design of high - speed switching circuits. low - power design extensive discussion of batteries, solar cells, and " signal - current " power sources. micropower references and regulators. low - power analog circuits - - discrete and integrated. low - power digital circuits, microprocessors, and conversion techniques. measurements and signal processing what you can measure and how accurately, and what to do with the data. bandwidth - narrowing methods made


clear : signal averaging, multichannel scaling, lock - in amplifiers, and pulse - height analysis. it takes a bit of a commitment to read it all, but it is the sort of book that you can pick from. not to heavy on the maths.


the following ring opening reaction will occour : you are quite right about the angle strain. because orbital interactions are not optimal in this geometry. consider p - orbitals, then a natural bond angle would be $ \ theta \ in [ 90 ^ \ circ ; 180 ^ \ circ ] $. a mixing of s - and p - type orbitals allows a wide range of angles $ \ theta \ in ( 90 ^ \ circ, \ dots, 180 ^ \ circ ) $. in cyclopropane $ \ ce { c3h6 } $ - which you can also describe as trimethylene $ \ ce { ( ch2 ) 3 } $ - bonds have to be bent to overlap at all. a possible way of describing the bonding situation is regarding each $ \ ce { ch2 } $ entity as $ \ mathrm { sp ^ 2 } $ hybridised. two of these orbitals are used for $ \ ce { c - h } $ bonds ( not shown ) and one forms an inner two - electron - three - centre σ bond ( left ). this leaves p - orbitals to form some kind of degenerate π - like orbitals ( middle, right ). this very general approach can be derived from a walsh diagram. schwarz et. al. { @ academia. edu } and hoffmann { @ roaldhoffmann. com } described bonding quite similar and it is in quite good agreement with a calculation ( bp86 / cc - pvtz, $ d _ \ mathrm { 3h } $ ) i have done. from this i have prepared a chart of all occupied molecular orbitals formed from valence orbitals and the lumo. here is a preview. each orbital is viewed from three different angles : especially the symmetrical orbital 8 resembles very well the schematics. a quite rigorous approach for this theory can also be found here. it is noteworthy - as mentioned by ron - that there is no notable increase in electron density in the centre of the ring. this may be due to the fact that there are much more orbitals having nodes in the centre than there are without. now bromine is known to be easily polarised $ \ ce { { } ^ { \ delta + } br - br ^ { \ delta - } } $ and may intercept at any point of the ring causing a bond break and relaxation to a less strained structure. it will most likely attack at the the $ \ pi $ type orbitals since bromine is an electro


##phile. the mechanism is analogous to the addition of bromine to ethene, which is nicely described at chemguide. co. uk. the essential part is the attack of the bromine at the homo ( s ). the ring opening reaction can be reversed by adding sodium. however, when there are bromine radicals present ( uv light ) then substitution will occur : \ begin { aligned } \ ce { br2 & - > [ \ ce { h \ nu } ] 2br. \ \ & + ( ch2 ) 3 - > ( ch2 ) 2 ( chbr ) + hbr } \ end { aligned }


laplace of gaussian the laplace of gaussian ( log ) of image $ f $ can be written as $ $ \ nabla ^ 2 ( f * g ) = f * \ nabla ^ 2 g $ $ with $ g $ the gaussian kernel and $ * $ the convolution. that is, the laplace of the image smoothed by a gaussian kernel is identical to the image convolved with the laplace of the gaussian kernel. this convolution can be further expanded, in the 2d case, as $ $ f * \ nabla ^ 2 g = f * \ left ( \ frac { \ partial ^ 2 } { \ partial x ^ 2 } g + \ frac { \ partial ^ 2 } { \ partial y ^ 2 } g \ right ) = f * \ frac { \ partial ^ 2 } { \ partial x ^ 2 } g + f * \ frac { \ partial ^ 2 } { \ partial y ^ 2 } g $ $ thus, it is possible to compute it as the addition of two convolutions of the input image with second derivatives of the gaussian kernel ( in 3d this is 3 convolutions, etc. ). this is interesting because the gaussian kernel is separable, as are its derivatives. that is, $ $ f ( x, y ) * g ( x, y ) = f ( x, y ) * \ left ( g ( x ) * g ( y ) \ right ) = \ left ( f ( x, y ) * g ( x ) \ right ) * g ( y ) $ $ meaning that instead of a 2d convolution, we can compute the same thing using two 1d convolutions. this saves a lot of computations. for the smallest thinkable gaussian kernel you'd have 5 samples along each dimension. a 2d convolution requires 25 multiplications and additions, two 1d convolutions require 10. the larger the kernel, or the more dimensions in the image, the more significant these computational savings are. thus, the log can be computed using four 1d convolutions. the log kernel itself, though, is not separable. there is an approximation where the image is first convolved with a gaussian kernel and then $ \ nabla ^ 2 $ is implemented using finite differences, leading to the 3x3 kernel with - 4 in


the middle and 1 in its four edge neighbors. the ricker wavelet or mexican hat operator are identical to the log, up to scaling and normalization. difference of gaussians the difference of gaussians ( dog ) of image $ f $ can be written as $ $ f * g _ { ( 1 ) } - f * g _ { ( 2 ) } = f * ( g _ { ( 1 ) } - g _ { ( 2 ) } ) $ $ so, just as with the log, the dog can be seen as a single non - separable 2d convolution or the sum ( difference in this case ) of two separable convolutions. seeing it this way, it looks like there is no computational advantage to using the dog over the log. however, the dog is a tunable band - pass filter, the log is not tunable in that same way, and should be seen as the derivative operator it is. the dog also appears naturally in the scale - space setting, where the image is filtered at many scales ( gaussians with different sigmas ), the difference between subsequent scales is a dog. there is an approximation to the dog kernel that is separable, reducing computational cost by half, though that approximation is not isotropic, leading to rotational dependence of the filter. i once showed ( for myself ) the equivalence of the log and dog, for a dog where the difference in sigma between the two gaussian kernels is infinitesimally small ( up to scaling ). i don't have records of this, but it was not difficult to show. other forms of computing these filters laurent's answer mentions recursive filtering, and the op mentions computation in the fourier domain. these concepts apply to both the log and the dog. the gaussian and its derivatives can be computed using a causal and anti - causal iir filter. so all 1d convolutions mentioned above can be applied in constant time w. r. t. the sigma. note that this is only efficient for larger sigmas. likewise, any convolution can be computed in the fourier domain, so both the dog and log 2d kernels can be transformed to the fourier domain ( or rather computed there ) and applied by multiplication. in conclusion there are no significant differences in the computational complexity of these two approaches. i have yet to find a good reason to approximate the log using the dog.


yes, larger animals do experience larger delays in movement. there have been studies of size difference vs sensorimotor delays in terrestrial mammals, that graph is for innate reflexes of a needle to the hind versus a kick - time. perhaps no one dared to prick a blue whale. elephant vs shrew, heartbeat of 30 vs 1500 bpm, elephant 50 times slower than the shrew. larger animals compensate with a better ability to predict physics and kinematics using their larger brain. there are other kinds of movements which have more complex neural pathways that the graphs of pin - prick reflexes, that are even slower compared to size, you can study the physiology of eye to hand response in humans which varies from 120ms to 270ms for different humans. it does have an effect on survival for example with a mongoose versus a snake, the mongoose has more versatile and faster reactions. there are also weasel attack videos on the web. some graphs here


the simplest approach is to do some kind of spline interpolation like jim clay suggests ( linear or otherwise ). however, if you have the luxury of batch processing, and especially if you have an overdetermined set of nonuniform samples, there's a " perfect reconstruction " algorithm that's extremely elegant. for numerical reasons, it may not be practical in all cases, but it's at least worth knowing about conceptually. i first read about it in this paper. the trick is to consider your set of nonuniform samples as having already been reconstructed from uniform samples through sinc interpolation. following the notation in the paper : $ $ y ( t ) = \ sum _ { k = 1 } ^ { n } { y ( kt ) \ frac { \ sin ( \ pi ( t - kt ) / t ) } { \ pi ( t - kt ) / t } } = \ sum _ { k = 1 } ^ { n } { y ( kt ) \ mathrm { sinc } ( \ frac { t - kt } { t } ) }. $ $ note that this provides a set of linear equations, one for each nonuniform sample $ y ( t ) $, where the unknowns are the equally - spaced samples $ y ( kt ) $, like so : $ $ \ begin { bmatrix } y ( t _ 0 ) \ \ y ( t _ 1 ) \ \ \ cdots \ \ y ( t _ m ) \ end { bmatrix } = \ begin { bmatrix } \ mathrm { sinc } ( \ frac { t _ 0 - t } { t } ) & \ mathrm { sinc } ( \ frac { t _ 0 - 2t } { t } ) & \ cdots & \ mathrm { sinc } ( \ frac { t _ 0 - nt } { t } ) \ \ \ mathrm { sinc } ( \ frac { t _ 1 - t } { t } ) & \ mathrm { sinc } ( \ frac { t _ 1 - 2t } { t } ) & \ cdots & \ mathrm { sinc } ( \ frac { t _ 1 - nt } { t } ) \ \ \ cdots & \ cdots & \ cdots & \ cdots \ \ \ mathrm { sinc } ( \ frac { t


_ m - t } { t } ) & \ mathrm { sinc } ( \ frac { t _ m - 2t } { t } ) & \ cdots & \ mathrm { sinc } ( \ frac { t _ m - nt } { t } ) \ end { bmatrix } \ begin { bmatrix } y ( t ) \ \ y ( 2t ) \ \ \ cdots \ \ y ( nt ) \ end { bmatrix }. $ $ in the above equation, $ n $ is the number of unknown uniform samples, $ t $ is the inverse of the uniform sample rate, and $ m $ is the number of nonuniform samples ( which may be greater than $ n $ ). by computing the least squares solution of that system, the uniform samples can be reconstructed. technically, only $ n $ nonuniform samples are necessary, but depending on how " scattered " they are in time, the interpolation matrix may be horribly ill - conditioned. when that's the case, using more nonuniform samples usually helps. as a toy example, here's a comparison ( using numpy ) between the above method and cubic spline interpolation on a mildly jittered grid : ( code to reproduce the above plot is included at the end of this answer ) all that being said, for high - quality, robust methods, starting with something in one of the following papers would probably be more appropriate : a. aldroubi and karlheinz grochenig, nonuniform sampling and reconstruction in shift - invariant spaces, siam rev., 2001, no. 4, 585 - 620. ( pdf link ). k. grochenig and h. schwab, fast local reconstruction methods for nonuniform sampling in shift - invariant spaces, siam j. matrix anal. appl., 24 ( 2003 ), 899 - 913. - - import numpy as np import pylab as py import scipy. interpolate as spi import numpy. random as npr import numpy. linalg as npl npr. seed ( 0 ) class signal ( object ) : def _ _ init _ _ ( self, x, y ) : self. x = x self. y = y def plot ( self, title ) : self. _ plot ( title ) py. plot ( self. x, self. y,'bo - '


) py. ylim ( [ - 1. 8, 1. 8 ] ) py. plot ( hires. x, hires. y,'k - ', alpha =. 5 ) def _ plot ( self, title ) : py. grid ( ) py. title ( title ) py. xlim ( [ 0. 0, 1. 0 ] ) def sinc _ resample ( self, xnew ) : m, n = ( len ( self. x ), len ( xnew ) ) t = 1. / n a = np. zeros ( ( m, n ) ) for i in range ( 0, m ) : a [ i, : ] = np. sinc ( ( self. x [ i ] - xnew ) / t ) return signal ( xnew, npl. lstsq ( a, self. y ) [ 0 ] ) def spline _ resample ( self, xnew ) : s = spi. splrep ( self. x, self. y ) return signal ( xnew, spi. splev ( xnew, s ) ) class error ( signal ) : def _ _ init _ _ ( self, a, b ) : self. x = a. x self. y = np. abs ( a. y - b. y ) def plot ( self, title ) : self. _ plot ( title ) py. plot ( self. x, self. y,'bo -') py. ylim ( [ 0. 0,. 5 ] ) def grid ( n ) : return np. linspace ( 0. 0, 1. 0, n ) def sample ( f, x ) : return signal ( x, f ( x ) ) def random _ offsets ( n, amt =. 5 ) : return ( amt / n ) * ( npr. random ( n ) -. 5 ) def jittered _ grid ( n, amt =. 5 ) : return np. sort ( grid ( n ) + random _ offsets ( n, amt ) ) def f ( x ) : t = np. pi * 2. 0 * x return np. sin ( t ) +. 5 * np. sin ( 14. 0 * t ) n = 30 m = n + 1 # signals even = sample ( f, np. r _ [ 1 : n + 1 ]


/ float ( n ) ) uneven = sample ( f, jittered _ grid ( m ) ) hires = sample ( f, grid ( 10 * n ) ) sinc = uneven. sinc _ resample ( even. x ) spline = uneven. spline _ resample ( even. x ) sinc _ err = error ( sinc, even ) spline _ err = error ( spline, even ) # plot labels sn = lambda x, n : " % sly sampled ( % s points ) " % ( x, n ) r = lambda x : " % s reconstruction " % x re = lambda x : " % s error " % r ( x ) plots = [ [ even, sn ( " even ", n ) ], [ uneven, sn ( " uneven ", m ) ], [ sinc, r ( " sinc " ) ], [ sinc _ err, re ( " sinc " ) ], [ spline, r ( " cubic spline " ) ], [ spline _ err, re ( " cubic spline " ) ] ] for i in range ( 0, len ( plots ) ) : py. subplot ( 3, 2, i + 1 ) p = plots [ i ] p [ 0 ]. plot ( p [ 1 ] ) py. show ( )


i've been doing a little more digging myself and have found a couple of other advantages : risk of venous - thromboembolism ( deep vein thrombosis / pulmonary embolism ( 1 ) ). blood group o individuals are at lower risk of the above conditions due to reduced levels of von willebrand factor ( 2 ) and factor viii clotting factors. cholera infection susceptibility & severity. individuals with blood group o are less susceptible to some strains of cholera ( o1 ) but are more likely to suffer severe effects from the disease if infected ( 3 ). e. coli infection susceptibility & severity. a study in scotland indicated that those with the o blood group showed higher than expected infection rates with e. coli o157 and significantly higher fatality rates ( 78. 5 % of fatalities had blood group o ). ( 4 ) peptic ulcers caused by heliobacter pylori which can also lead to gastric cancer. group o are again more susceptible to strains of h. pylori ( 5 ). whether blood group antigens are displayed on other body cells or not has been linked to increased or decreased susceptibility to many diseases, notably norrovirus and hiv. this is fully explained in the article that i was above summarising - " the relationship between blood group and disease " in addition to extended descriptions of the other two answers.


$ r ^ 2 $ compares the fit of the chosen model with that of a horizontal straight line ( the null hypothesis ). if the chosen model fits worse than a horizontal line, then $ r ^ 2 $ is negative. note that $ r ^ 2 $ is not always the square of anything, so it can have a negative value without violating any rules of math. $ r ^ 2 $ is negative only when the chosen model does not follow the trend of the data, so fits worse than a horizontal line. example : fit data to a linear regression model constrained so that the $ y $ intercept must equal $ 1500 $. the model makes no sense at all given these data. it is clearly the wrong model, perhaps chosen by accident. the fit of the model ( a straight line constrained to go through the point ( 0, 1500 ) ) is worse than the fit of a horizontal line. thus the sum - of - squares from the model $ ( ss _ \ text { res } ) $ is larger than the sum - of - squares from the horizontal line $ ( ss _ \ text { tot } ) $. if $ r ^ 2 $ is computed as $ 1 - \ frac { ss _ \ text { res } } { ss _ \ text { tot } } $. ( here, $ ss _ { res } $ = residual error. ) when $ ss _ \ text { res } $ is greater than $ ss _ \ text { tot } $, that equation could compute a negative value for $ r ^ 2 $, if the value of the coeficient is greater than 1. with linear regression with no constraints, $ r ^ 2 $ must be positive ( or zero ) and equals the square of the correlation coefficient, $ r $. a negative $ r ^ 2 $ is only possible with linear regression when either the intercept or the slope are constrained so that the " best - fit " line ( given the constraint ) fits worse than a horizontal line. with nonlinear regression, the $ r ^ 2 $ can be negative whenever the best - fit model ( given the chosen equation, and its constraints, if any ) fits the data worse than a horizontal line. bottom line : a negative $ r ^ 2 $ is not a mathematical impossibility or the sign of a computer bug. it simply means that the chosen model ( with its constraints ) fits the data really poorly.


forecastability you are right that this is a question of forecastability. there have been a few articles on forecastability in the iif's practitioner - oriented journal foresight. ( full disclosure : i'm an associate editor. ) the problem is that forecastability is already hard to assess in " simple " cases. a few examples suppose you have a time series like this but don't speak german : how would you model the large peak in april, and how would you include this information in any forecasts? unless you knew that this time series is the sales of eggs in a swiss supermarket chain, which peaks right before western calendar easter, you would not have a chance. plus, with easter moving around the calendar by as much as six weeks, any forecasts that don't include the specific date of easter ( by assuming, say, that this was just some seasonal peak that would recur in a specific week next year ) would probably be very off. similarly, assume you have the blue line below and want to model whatever happened on 2010 - 02 - 28 so differently from " normal " patterns on 2010 - 02 - 27 : again, without knowing what happens when a whole city full of canadians watches an olympic ice hockey finals game on tv, you have no chance whatsoever to understand what happened here, and you won't be able to predict when something like this will recur. finally, look at this : this is a time series of daily sales at a cash and carry store. ( on the right, you have a simple table : 282 days had zero sales, 42 days saw sales of 1... and one day saw sales of 500. ) i don't know what item it is. to this day, i don't know what happened on that one day with sales of 500. my best guess is that some customer pre - ordered a large amount of whatever product this was and collected it. now, without knowing this, any forecast for this particular day will be far off. conversely, assume that this happened right before easter, and we have a dumb - smart algorithm that believes this could be an easter effect ( maybe these are eggs? ) and happily forecasts 500 units for the next easter. oh my, could that go wrong. summary in all cases, we see how forecastability can only be well understood once we have a sufficiently deep understanding of likely factors that influence our data. the problem is that unless we know these factors, we don't know that we may not know them. as


per donald rumsfeld : [ t ] here are known knowns ; there are things we know we know. we also know there are known unknowns ; that is to say we know there are some things we do not know. but there are also unknown unknowns – the ones we don't know we don't know. if easter or canadians'predilection for hockey are unknown unknowns to us, we are stuck - and we don't even have a way forward, because we don't know what questions we need to ask. the only way of getting a handle on these is to gather domain knowledge. conclusions i draw three conclusions from this : you always need to include domain knowledge in your modeling and prediction. even with domain knowledge, you are not guaranteed to get enough information for your forecasts and predictions to be acceptable to the user. see that outlier above. if " your results are miserable ", you may be hoping for more than you can achieve. if you are forecasting a fair coin toss, then there is no way to get above 50 % accuracy. don't trust external forecast accuracy benchmarks, either. the bottom line here is how i would recommend building models - and noticing when to stop : talk to someone with domain knowledge if you don't already have it yourself. identify the main drivers of the data you want to forecast, including likely interactions, based on step 1. build models iteratively, including drivers in decreasing order of strength as per step 2. assess models using cross - validation or a holdout sample. if your prediction accuracy does not increase any further, either go back to step 1 ( e. g., by identifying blatant mis - predictions you can't explain, and discussing these with the domain expert ), or accept that you have reached the end of your models'capabilities. time - boxing your analysis in advance helps. note that i am not advocating trying different classes of models if your original model plateaus. typically, if you started out with a reasonable model, using something more sophisticated will not yield a strong benefit and may simply be " overfitting on the test set ". i have seen this often, and other people agree.


fundamentally, it basically boils down to the fact that the software is way easier to design with only 45° angles. modern autorouters are getting better, but most of the pcb tools available have roots that go back to the dos days, and therefore there is an enormous amount of legacy pressure to not completely redesign the pcb layout interface. furthermore, many modern eda packages let you " push " groups of traces, with the autorouter stepping in to allow one trace to force other traces to move, even during manual routing. this is also much harder to implement when you aren't confined to rigid 45° angles.


the associated cost of bfgs may be brought more in line with cg if you use the limited memory variants rather than the full - storage bfgs. this computes the bfgs update for the last $ m $ updates efficiently by a series of rank - one updates without needing to store more than the last $ m $ solutions and gradients. in my experience, bfgs with a lot of updates stores information too far away from the current solution to be really useful in approximating the non - lagged jacobian, and you can actually lose convergence if you store too much. there are " memoryless " variants of bfgs that look a lot like nonlinear conjugate gradients ( see the final update described for one of these ) for just these reasons. therefore, if you're willing to do l - bfgs rather than bfgs, the memory issues disappear and the methods are related. anecdotal evidence points to restarting being a tricky issue, as it is sometimes unnecessary and sometimes very necessary. your choice between the two also depends heavily on the problems you are interested in. if you have the resources, you can try both for your problems and decide which works better. for example, i personally don't do optimization with these algorithms, but instead care about the solution of systems of nonlinear equations. for these i have found that ncg works better and is easier to perform nonlinear preconditioning on. bfgs is more robust. frankly, my favorite method for these types of things is n - gmres. this is especially true if your gradient evaluation is very expensive, as in my experience it gives you the most bang for your buck by solving a small minimization problem on the last $ m $ iterates to construct a new, lower - residual solution.


broad interest please recommend a good book about physics for young child ( elementary school aged ) books that develop interest & critical thinking among high school students books that every layman should read books that every physicist should read a good highschool level physics book are there modern 1st year university physics textbooks using old - schoool layout, i. e. no sidebars and smaller format? mathematics general : best books for mathematical background? basic methods : book recommendations for fourier series, dirac delta function and differential equations? tensors : learn about tensors for physics complex analysis : complex variable book suggestion group theory : comprehensive book on group theory for physicists? spectral theory : books for linear operator and spectral theory variational calculus : introductory texts for functionals and calculus of variation geometry and topology : book covering differential geometry and topology for physics algebraic geometry : crash course on algebraic geometry with view to applications in physics dynamical systems / chaos : self - study book for dynamical systems theory? fractals : physics - oriented books on fractals distribution theory : resources for theory of distributions ( generalized functions ) for physicists statistics : rigorous error analysis theory mechanics introductory : recommendations for good newtonian mechanics and kinematics books introductory ( for mathematicians ) : which mechanics book is the best for beginner in math major? foundations : book suggestions for foundation of newtonian mechanics lagrangian and hamiltonian : any good resources for lagrangian and hamiltonian dynamics? advanced / geometrical : book about classical mechanics fully geometrical : classical mechanics without coordinates book classical field theories electromagnetism ( advanced undergraduate ) : recommended books for advanced undergraduate electrodynamics electromagnetism ( graduate ) : graduate level book in classical electrodynamics electromagnetism ( with applications ) : electrodynamics textbooks that emphasize applications waves : what's a good textbook to learn about waves and oscillations? general : need for a side book for e. soper's classical theory of fields elasticity : modern references for continuum mechanics fluid dynamics : book recommendations for fluid dynamics self - study boundary layer theory : boundary layer theory in fluids learning resources special relativity introductory : what are good books for special relativity? visual : textbook for special relativity : modern version of bondi's relativity and common sense? geometric : textbook on the geometry of special relativity math - free : recommended books for a " relativity for poets " class? relativistic imaging : reference request for relativistic imaging thermodynamics and statistical mechanics short : crash


course in classical thermodynamics undergraduate statistical mechanics : good undergraduate statistical mechanics textbook advanced : recommendations for statistical mechanics book careful : references about rigorous thermodynamics foundational : are there any modern textbooks on statistical mechanics which don't ignore gibbs'analysis of the microcanonical ensemble? differential forms : introduction to differential forms in thermodynamics stochastic processes : suggestion on good stochastic processes book for self - teaching quantum statistical mechanics : resources for introductory quantum statistical mechanics complex systems : what are some of the best books on complex systems and emergence? information theoretic point of view : reference for statistical mechanics from information theoretic view astrophysics and cosmology popular : recommend good book ( s ) about the " scientific method " as it relates to astronomy / astrophysics? astronomy : what is a good introductory text to astronomy astrophysics : what are good books for graduates / undergraduates in astrophysics? cosmology ( introductory ) : books on cosmology dark matter / dark energy : dark matter and dark energy references inflation : good resources for understanding inflationary cosmology neutrinos : book suggestion about neutrino effect on cosmic structure quantum mechanics popular : looking for a good casual book on quantum physics historical : good book on the history of quantum mechanics? introductory : what is a good introductory book on quantum mechanics? advanced : learn qm algebraic formulations and interpretations mathematical : a book on quantum mechanics supported by the high - level mathematics path integral : path integral formulation of quantum mechanics decoherence : decoherence and quantum to classical limit : good resources? berry phase : book on berry phase and its relation to topology interpretations : books about alternative interpretations of quantum mechanics atomic, molecular, optical physics high school optics : where is a good place to learn classical optics for high school competitions? atomic and molecular : book recommendation for atomic & molecular physics open systems : book recommendations for learning about open quantum systems quantum information : quantum information references quantum cryptography : a good book for quantum cryptography quantum optics : book recommendation : quantum optics nuclear physics introduction : introduction to nuclear physics advanced undergraduate : nuclear physics textbook theoretical : textbook for learning nuclear physics nuclear reactors : nuclear reactor physics book recommendations? condensed matter introductory / solid state : intro to solid state physics advanced : books for condensed matter after ashcroft / mermin second quantization : book recommendations for second quantization mathematically rigorous : mathematical rigorous introduction to solid state physics anyons : references on the physics of anyons fractional statistics : resource recommendation for fractional