homological algebra. let $ a, b $ be abelian groups ( or more generally objects of an abelian category ) and consider the set of isomorphism classes of abelian groups $ c $ together with an exact sequence $ 0 \ to b \ to c \ to a \ to 0 $ ( extensions of $ a $ by $ b $ ). it turns out that this set has a canonical group structure ( isn't that surprising?! ), namely the baer sum, and that this group is isomorphic to $ \ mathrm { ext } ^ 1 ( a, b ) $. this is also quite helpful to classify extensions for specific $ a $ and $ b $, since $ \ mathrm { ext } $ has two long exact sequences. for details, see weibel's book on homological algebra, chapter 3. similarily many obstructions in deformation theories are encoded in certain abelian groups. combinatorial game theory. a two - person game is called combinatorial if no chance is involved and the ending condition holds, so that in each case one of the two players wins. each player has a set of possible moves, each one resulting in a new game. there is a notion of equivalent combinatorial games. it turns out that the equivalence classes of combinatorial games can be made into a ( large ) group. the zero game $ 0 $ is the game where no moves are available. a move in the sum $ g + h $ of two games $ g, h $ is just a move in exactly one of $ g $ or $ h $. the inverse $ - g $ of a game $ g $ is the one where the possibles moves for the two players are swapped. the equation $ g + ( - g ) = 0 $ requires a proof. an important subgroup is the class of impartial games, where the same moves are available for both players ( or equivalently $ g = - g $ ). this extra structure already suffices to solve many basic combinatorial games, such as nim. in fact, one the first results in combinatorial game theory is that the ( large ) group of impartial combinatorial games is isomorphic to the ordinal numbers $ \ mathbf { on } $ with a certain group law $ \ oplus $, called the nim - sum ( different from the usual ordinal addition ). this identification is given by the nimber. this makes it possible


to reduce complicated games to simpler ones, in fact in theory to a trivial one - pile nim game. even the restriction to finite ordinal numbers gives an interesting group law on the set of natural numbers $ \ mathbb { n } $ ( see jyrki's answer ). all this can be found in the fantastic book winning ways... by conway, berlekamp, guy, and in conway's on numbers and games. a more formal introduction can be found in this paper by schleicher, stoll. there you also learn that ( certain ) combinatorial games actually constitute a ( large ) totally ordered field, containing the real numbers as well as the ordinal numbers. you couldn't have guessed this rich structure from their definition, right? algebraic topology. if $ x $ is a based space, the set of homotopy classes of pointed maps $ s ^ n \ to x $ has a group structure ; this is the $ n $ th homotopy group $ \ pi _ n ( x ) $ of $ x $. for $ n = 1 $ the group structure is quite obvious, since we can compose paths and go paths backwards. but at first sight it is not obvious that we can do something like that in higher dimensions. essentially this comes down to the cogroup structure of $ s ^ n $. there is a nice geometric proof that $ \ pi _ n ( x ) $ is abelian for $ n > 1 $.


causality indicates that information only flows forward in time, and algorithms should be designed to exploit this fact. time stepping schemes do this, whereas global - in - time spectral methods or other ideas do not. the question is of course why everyone insists on exploiting this fact - - but that's easy to understand : if your spatial problem already has a million unknowns and you need to do 1000 time steps, then on a typical machine today you have enough resources to solve the spatial problem by itself one timestep after the other, but you don't have enough resources to deal with a coupled problem of $ 10 ^ 9 $ unknowns. the situation is really not very different from what you have with spatial discretizations of transport phenomena either. sure, you can discretize a pure 1d advection equation using a globally coupled approach. but if you care about efficiency, then the by far best approach is to use a downstream sweep that carries information from the inflow to the outflow part of the domain. that's exactly what time stepping schemes do in time.


short answer yes, men and women's brains are different before birth. background first off, learning effects versus genetic differences is the familiar nature versus nurture issue. several genes on the y - chromosome, unique to males, are expressed in the pre - natal brain. in fact, about a third of the genes on the y - chromosome are expressed in the male prenatal brain ( reinius & jazin, 2009 ). hence, there are substantial genetic differences between male and female brains. importantly, the male testes start producing testosterone in the developing fetus. the female hormones have opposing effects on the brain as testosterone. in neural regions with appropriate receptors, testosterone influences patterns of cell death and survival, neural connectivity and neurochemical composition. in turn, while recognizing post - natal behavior is subject to parenting influences and others, prenatal testosterone may affect play behaviors between males and females, whereas influences on sexual orientation appear to be less dramatic ( hines, 2006 ). the question is quite broad and i would start with the cited review articles below, or if need be, the wikipedia page on the neuroscience of sex differences. references - hines, eur j endocrinol ( 2006 ) ; 155 : s115 - 21 - reinius & jazin, molecular psychiatry ( 2009 ) ; 14 : 988 – 9


voltage rating if a device says it needs a particular voltage, then you have to assume it needs that voltage. both lower and higher could be bad. at best, with lower voltage the device will not operate correctly in a obvious way. however, some devices might appear to operate correctly, then fail in unexpected ways under just the right circumstances. when you violate required specs, you don't know what might happen. some devices can even be damaged by too low a voltage for extended periods of time. if the device has a motor, for example, then the motor might not be able to develop enough torque to turn, so it just sits there getting hot. some devices might draw more current to compensate for the lower voltage, but the higher than intended current can damage something. most of the time, lower voltage will just make a device not work, but damage can't be ruled out unless you know something about the device. higher than specified voltage is definitely bad. electrical components all have voltages above which they fail. components rated for higher voltage generally cost more or have less desirable characteristics, so picking the right voltage tolerance for the components in the device probably got significant design attention. applying too much voltage violates the design assumptions. some level of too much voltage will damage something, but you don't know where that level is. take what a device says on its nameplate seriously and don't give it more voltage than that. current rating current is a bit different. a constant - voltage supply doesn't determine the current : the load, which in this case is the device, does. if johnny wants to eat two apples, he's only going to eat two whether you put 2, 3, 5, or 20 apples on the table. a device that wants 2 a of current works the same way. it will draw 2 a whether the power supply can only provide the 2 a, or whether it could have supplied 3, 5, or 20 a. the current rating of a supply is what it can deliver, not what it will always force thru the load somehow. in that sense, unlike with voltage, the current rating of a power supply must be at least what the device wants but there is no harm in it being higher. a 9 volt 5 amp supply is a superset of a 9 volt 2 amp supply, for example. replacing existing supply if you are replacing a previous power supply and don't know the device's requirements, then consider that power supply's rating to be the device '


s requirements. for example, if a unlabeled device was powered from a 9 v and 1 a supply, you can replace it with a 9 v and 1 or more amp supply. advanced concepts the above gives the basics of how to pick a power supply for some device. in most cases that is all you need to know to go to a store or on line and buy a power supply. if you're still a bit hazy on what exactly voltage and current are, it's probably better to quit now. this section goes into more power supply details that generally don't matter at the consumer level, and it assumes some basic understanding of electronics. regulated versus unregulated unregulated very basic dc power supplies, called unregulated, just step down the input ac ( generally the dc you want is at a much lower voltage than the wall power you plug the supply into ), rectify it to produce dc, add a output cap to reduce ripple, and call it a day. years ago, many power supplies were like that. they were little more than a transformer, four diodes making a full wave bridge ( takes the absolute value of voltage electronically ), and the filter cap. in these kinds of supplies, the output voltage is dictated by the turns ratio of the transformer. this is fixed, so instead of making a fixed output voltage their output is mostly proportional to the input ac voltage. for example, such a " 12 v " dc supply might make 12 v at 110 vac in, but then would make over 13 v at 120 vac in. another issue with unregulated supplies is that the output voltage not only is a function of the input voltage, but will also fluctuate with how much current is being drawn from the supply. a unregulated " 12 volt 1 amp " supply is probably designed to provide the rated 12 v at full output current and the lowest valid ac input voltage, like 110 v. it could be over 13 v at 110 v in at no load ( 0 amps out ) alone, and then higher yet at higher input voltage. such a supply could easily put out 15 v, for example, under some conditions. devices that needed the " 12 v " were designed to handle that, so that was fine. regulated modern power supplies don't work that way anymore. pretty much anything you can buy as consumer electronics will be a regulated power supply. you can still get unregulated supplies from more specialized electronics suppliers aimed


at manufacturers, professionals, or at least hobbyists that should know the difference. for example, jameco has wide selection of power supplies. their wall warts are specifically divided into regulated and unregulated types. however, unless you go poking around where the average consumer shouldn't be, you won't likely run into unregulated supplies. try asking for a unregulated wall wart at a consumer store that sells other stuff too, and they probably won't even know what you're talking about. a regulated supply actively controls its output voltage. these contain additional circuitry that can tweak the output voltage up and down. this is done continuously to compensate for input voltage variations and variations in the current the load is drawing. a regulated 1 amp 12 volt power supply, for example, is going to put out pretty close to 12 v over its full ac input voltage range and as long as you don't draw more than 1 a from it. universal input since there is circuitry in the supply to tolerate some input voltage fluctuations, it's not much harder to make the valid input voltage range wider and cover any valid wall power found anywhere in the world. more and more supplies are being made like that, and are called universal input. this generally means they can run from 90 - 240 v ac, and that can be 50 or 60 hz. minimum load some power supplies, generally older switchers, have a minimum load requirement. this is usually 10 % of full rated output current. for example, a 12 volt 2 amp supply with a minimum load requirement of 10 % isn't guaranteed to work right unless you load it with at least 200 ma. this restriction is something you're only going to find in oem models, meaning the supply is designed and sold to be embedded into someone else's equipment where the right kind of engineer will consider this issue carefully. i won't go into this more since this isn't going to come up on a consumer power supply. current limit all supplies have some maximum current they can provide and still stick to the remaining specs. for a " 12 volt 1 amp " supply, that means all is fine as long as you don't try to draw more than the rated 1 a. there are various things a supply can do if you try to exceed the 1 a rating. it could simply blow a fuse. specialty oem supplies that are stripped down for cost could catch fire or vanish into a greasy cloud of black


smoke. however, nowadays, the most likely response is that the supply will drop its output voltage to whatever is necessary to not exceed the output current. this is called current limiting. often the current limit is set a little higher than the rating to provide some margin. the " 12 v 1 a " supply might limit the current to 1. 1 a, for example. a device that is trying to draw the excessive current probably won't function correctly, but everything should stay safe, not catch fire, and recover nicely once the excessive load is removed. ripple no supply, even a regulated one, can keep its output voltage exactly at the rating. usually due to the way the supply works, there will be some frequency at which the output oscillates a little, or ripples. with unregulated supplies, the ripple is a direct function of the input ac. basic transformer unregulated supplies fed from 60 hz ac will generally ripple at 120 hz, for example. the ripple of unregulated supplies can be fairly large. to abuse the 12 volt 1 amp example again, the ripple could easily be a volt or two at full load ( 1 a output current ). regulated supplies are usually switchers and therefore ripple at the switching frequency. a regulated 12 v 1 a switcher might ripple ±50 mv at 250 khz, for example. the maximum ripple might not be at maximum output current.


you can do this easily with bioawk, which is a version of awk with added features facilitating bioinformatics : bioawk - c fastx'{ print $ name " \ t0 \ t " length ( $ seq ) }'test. fa - c fastx tells the program that the data should be parsed as fasta or fastq format. this makes the $ name and $ seq variables available in the awk commands.


menthol it self gives a cold feeling in the mouth because it is active at the same receptor ( an ion channel ) on the tongue that cold temperature triggers. interestingly, although they act at the same receptor, they act at different sites, so that provides the intensified response when eating a mint and then drinking water. this reference gives an excellent detailed answer, with references to the original papers, which i'll summarize here. menthol acts at the trpm8 protein which forms an ion channel that allows $ \ ce { na + } $ and $ \ ce { ca ^ 2 + } $ ions to flow into cells and this sends a signal saying " cool " to the brain. ( as an aside, this protein monitors temperature across the body and not just on the tongue. ) cold temperatures actually change the confirmation of this protein, which allows the ions to flow more freely, and sends the signal to the brain. menthol, on the other hand, stabilizes the open channel ( allowing ions to flow even more freely ) and also... “ menthol shifts the voltage dependence of channel activation to more negative values by slowing channel deactivation ”. this is very significant to my question because it supports a claim made by the first web page i visited which stated that menthol acts on the receptors, leaving them sensitized for when the second stimulus is applied ( i. e. cold water ) resulting in the enhanced sensation. this mechanism of binding is very clearly different from the mechanism of cold affecting the trp channels. this is why the sensation is increased when both stimuli are applied, yet is not affected after addition stimulation from the same stimuli ( i. e. eating another mint ). all in all, pretty cool.


some general information on side - chain oxidation in alkylbenzenes is available at chemguide : an alkylbenzene is simply a benzene ring with an alkyl group attached to it. methylbenzene is the simplest alkylbenzene. alkyl groups are usually fairly resistant to oxidation. however, when they are attached to a benzene ring, they are easily oxidised by an alkaline solution of potassium manganate ( vii ) ( potassium permanganate ). methylbenzene is heated under reflux with a solution of potassium manganate ( vii ) made alkaline with sodium carbonate. the purple colour of the potassium manganate ( vii ) is eventually replaced by a dark brown precipitate of manganese ( iv ) oxide. the mixture is finally acidified with dilute sulfuric acid. overall, the methylbenzene is oxidised to benzoic acid. interestingly, any alkyl group is oxidised back to a - cooh group on the ring under these conditions. so, for example, propylbenzene is also oxidised to benzoic acid. regarding the mechanism, a ph. d. student at the university of british columbia did his doctorate on the mechanisms of permanganate oxidation of various organic substrates. 1 quoting from the abstract : it was found that the most vigorous oxidant was the permanganyl ion ( $ \ ce { mno3 + } $ ), with some contributing oxidation by both permanganic acid ( $ \ ce { hmno4 } $ ) and permanganate ion ( $ \ ce { mno4 - } $ ) in the case of easily oxidized compounds such as alcohols, aldehydes, or enols. the oxidation of toluene to benzoic acid was one of the reactions investigated, and a proposed reaction mechanism ( on pp 137 – 8 ) was as follows. in the slow step, the active oxidant $ \ ce { mno3 + } $ abstracts a benzylic hydrogen from the organic substrate. $ $ \ begin { align } \ ce { 2h + + mno4 - & < = > mno3 + + h2o } & & \ text { ( fast ) } \ \ \ ce { mno3 + + phcr2h & - > [ phcr2 ^. + hmno3 + ] & & \ text {


( slow ) } } \ \ \ ce { [ phcr2 ^. + hmno3 + ] & - > phcr2oh + mn ^ v } & & \ text { ( fast ) } \ \ \ ce { phcr2oh + mn ^ { vii } & - > aldehyde or ketone } & & \ text { ( fast ) } \ \ \ ce { aldehyde + mn ^ { vii } & - > benzoic acid } & & \ text { ( fast ) } \ \ \ ce { ketone + mn ^ { vii } & - > benzoic acid } & & \ text { ( slow ) } \ \ \ ce { 5 mn ^ v & - > 2mn ^ { ii } + 3mn ^ { vii } } & & \ text { ( fast ) } \ end { align } $ $ the abstraction of a benzylic hydrogen atom is consistent with the fact that arenes with no benzylic hydrogens, such as tert - butylbenzene, do not get oxidised. reference spitzer, u. a. the mechanism of permanganate oxidation of alkanes, arenes and related compounds. ph. d. thesis, the university of british columbia, november 1972. doi : 10. 14288 / 1. 0060242.


short answer : your confusion about whether ten is special may come from reading aloud " every base is base 10 " as " every base is base ten " — this is wrong ; not every base is base ten, only base ten is base ten. it is a joke that works better in writing. if you want to read it aloud, you should read it as " every base is base one - zero ". you must distinguish between numbers and representations. a pile of rocks has some number of rocks ; this number does not depend on what base you use. a representation is a string of symbols, like " 10 ", and depends on the base. there are " four " rocks in the cartoon, whatever the base may be. ( well, the word " four " may vary with language, but the number is the same. ) but the representation of this number " four " may be " 4 " or " 10 " or " 11 " or " 100 " depending on what base is used. the number " ten " — the number of dots in ".......... " — is not mathematically special. in different bases it has different representations : in base ten it is " 10 ", in base six it is " 14 ", etc. the representation " 10 " ( one - zero ) is special : whatever your base is, this representation denotes that number. for base $ b $, the representation " 10 " means $ 1 \ times b + 0 = b $. when we consider the base ten that we normally use, then " ten " is by definition the base for this particular representation, so it is in that sense " special " for this representation. but this is only an artefact of the base ten representation. if we were using the base six representation, then the representation " 10 " would correspond to the number six, so six would be special in that sense, for that representation.


short answer as far as i know, a complete neural map ( a connectome ) is only available for the roundworm c. elegens, a nematode with only 302 neurons ( fig. 1 ). fig. 1. c. elegans ( left, size : ~ 1 mm ) and connectome of c. elegans ( right ). sources : utrecht university & farber ( 2012 ) background looking at the least complex of animals will be your best bet and nematodes ( roundworms ) like caenorhabditis elegans are definitely a good option. c. elegans has some 300 neurons. below is a schematic of phyla in fig. 2. you mention insects ; these critters are much more complex than roundworms. the total number of neurons varies with each insect, but for comparison : one of the lesser complex insects like the fruit fly drosophila already has around 100k neurons, while a regular honey bee has about one million ( source : bio teaching ). complexity of the organism is indeed an indicator of the number of neurons to be expected. sponges, for instance ( fig. 1 ) have no neurons at all, so the least complex of animals won't help you. the next in line are the cnidaria ( fig. 2 ). the cnidaria include the jelly fish, and for example hydra vulgaris has 5. 6k neurons. so why do jelly fish feature more neurons? because size also matters. hydra vulgaris can grow up 15 mm, while c. elegans grows only up to 1 mm. see the wikipedia page for an informative list of # neurons in a host of species. a decent neuronal connectivity map ( a connectome ) only exists for c. elegans ( fig. 1 ) as far as i know, although other maps ( drosophila ( meinertzhagen, 2016 ) and human ) are underway. references - farber, sci am february 2012 - meinertzhagen, j neurogenet ( 2016 ) ; 30 ( 2 ) : 62 - 8 fig. 2. phyla within the kingdom of animalia. source : southwest tennessee university college


every simple closed curve that you can draw by hand will pass through the corners of some square. the question was asked by toeplitz in 1911, and has only been partially answered in 1989 by stromquist. as of now, the answer is only known to be positive, for the curves that can be drawn by hand. ( i. e. the curves that are piecewise the graph of a continuous function ) i find the result beyond my intuition. for details, see ( the figure is also borrowed from this site )


a question that requires quite a lot of guts to ask on this site : ) nonetheless, and risking sparking a debate, there are a few arguments that spring to ( my! ) mind that can support the notion that we thrive better in'day mode'( i. e., photopic conditions ). to start with a controversial assumption, humans are diurnal animals, meaning we are probably, but arguably, best adapted to photopic ( a lot of light ) conditions. a safer and less philosophical way to approach your question is by looking at the physiology and anatomy of the photosensitive organ of humans, i. e., the retina. the photosensitive cells in the retina are the rods and cones. photopic conditions favor cone receptors that mediate the perception of color. scotopic ( little light ) conditions favor rod activity, which are much more sensitive to photons, but operate on a gray scale only. the highest density of photoreceptors is found in the macular region, which is stacked with cones and confers high - acuity color vision. the periphery of the retina contains mostly rods, which mediate low - visual acuity only. since highest densities of photoreceptors are situated at the most important spot located at approximately 0 degrees, i. e., our point of focus, and since these are mainly cones, we apparently are best adapted to photopic conditions kolb, 2012 ). an evolutionary approach would be to start with the fact that ( most ) humans are trichromats ( barred folks with some sort of color blindness ), meaning we synthesize our color palette using 3 cone receptors sensitive to red ( long wavelength ), green ( intermediate ) and blue ( short ). humans are thought to have evolved from apes. those apes are thought to have been dichromats, which have only a long / intermediate cone and a blue cone. it has been put forward that the splitting of the short / intermediate cone in our ape ancestors to a separate red / green cone was favorable because we could better distinguish ripe from unripe fruits. since cones operate in the light, we apparently were selected for cone activity and thus photopic conditions ( bompas et al, 2013 ). literature - bompas et al., iperception ( 2013 ) ; 4 ( 2 ) : 84 – 94 - kolb, webvision - the organization of the retina and visual system ( 2012 ), moran eye center further reading -


why does a light object appear lighter in your peripheral vision when it's dark?


when you add salt to an ice cube, you end up with an ice cube whose temperature is above its melting point. this ice cube will do what any ice cube above its melting point will do : it will melt. as it melts, it cools down, since energy is being used to break bonds in the solid state. ( note that the above point can be confusing if you're new to thinking about phase transitions. an ice cube melting will take up energy, while an ice cube freezing will give off energy. i like to think of it in terms of le chatelier's principle : if you need to lower the temperature to freeze an ice cube, this means that the water gives off heat as it freezes. ) the cooling you get, therefore, comes from the fact that some of the bonds in the ice are broken to form water, taking energy with them. the loss of energy from the ice cube is what causes it to cool.


your image doesn't have uniform brightness, so you shouldn't work with a uniform threshold. you need an adaptive threshold. this can be implemented by preprocessing the image to make the brightness more uniform across the image ( code written in mathematica, you'll have to implement the matlab version for yourself ) : a simple way to make the brightness uniform is to remove the actual text from the image using a closing filter : white = closing [ src, diskmatrix [ 5 ] ] the filter size should be chosen larger than the font stroke width and smaller than the size of the stains you're trying to remove. edit : i was asked in the comments to explain what a closing operation does. it's a morphological dilation followed by a morphological erosion. the dilation essentially moves the structuring element at every position in the image, and picks the brightest pixel under the mask, thus : removing dark structures smaller than the structuring element shrinking larger dark structures by the size of the structuring element enlarging bright structures the erosion operation does the opposite ( it picks the darkest pixel under inside the structuring element ), so if you apply it on the dilated image : the dark structures that were removed because they're smaller than the structuring element are still gone the darker structures that were shrunk are enlarged again to their original size ( though their shape will be smoother ) the bright structures are reduced to their original size so the closing operation removes small dark objects with only minor changes to larger dark objects and bright objects. here's an example with different structuring element sizes : as the size of the structuring element increases, more and more of the characters is removed. at radius = 5, all of the characters are removed. if the radius is increased further, the smaller stains are removed, too : now you just divide the original image by this " white image " to get an image of ( nearly ) uniform brightness : whiteadjusted = image [ imagedata [ src ] / imagedata [ white ] * 0. 85 ] this image can now be binarized with a constant threshold : binarize [ whiteadjusted, 0. 6 ]


your understanding is correct. if you sample at rate $ f _ s $, then with real samples only, you can unambiguously represent frequency content in the region $ [ 0, \ frac { f _ s } { 2 } ) $ ( although the caveat that allows bandpass sampling still applies ). no additional information can be held in the other half of the spectrum when the samples are real, because real signals exhibit conjugate symmetry in the frequency domain ; if your signal is real and you know its spectrum from $ 0 $ to $ \ frac { f _ s } { 2 } $, then you can trivially conclude what the other half of its spectrum is. there is no such restriction for complex signals, so a complex signal sampled at rate $ f _ s $ can unambiguously contain content from $ - \ frac { f _ s } { 2 } $ to $ \ frac { f _ s } { 2 } $ ( for a total bandwidth of $ f _ s $ ). as you noted, however, there's not an inherent efficiency improvement to be made here, as each complex sample contains two components ( real and imaginary ), so while you require half as many samples, each requires twice the amount of data storage, which cancels out any immediate benefit. complex signals are often used in signal processing, however, where you have problems that map well to that structure ( such as in quadrature communications systems ).


let's talk about the balloon first because it provides a pretty good model for the expanding universe. it's true that if you draw a big circle then it will quickly expand as you blow into the balloon. actually, the apparent speed with which two of the points on the circle in a distance $ d $ of each other would move relative to each other will be $ v = h _ 0 d $ where $ h _ 0 $ is the speed the balloon itself is expanding. this simple relation is known as hubble's law and $ h _ 0 $ is the famous hubble constant. the moral of this story is that the expansion effect is dependent on the distance between objects and really only apparent for the space - time on the biggest scales. still, this is only part of the full picture because even on small distances objects should expand ( just slower ). let us consider galaxies for the moment. according to wikipedia, $ h _ 0 \ approx 70 \, { \ rm km \ cdot s ^ { - 1 } \ cdot { mpc } ^ { - 1 } } $ so for milky way which has a diameter of $ d \ approx 30 \, { \ rm kpc } $ this would give $ v \ approx 2 \, { \ rm km \ cdot s ^ { - 1 } } $. you can see that the effect is not terribly big but the given enough time, our galaxy should grow. but it doesn't. to understand why, we have to remember that space expansion isn't the only important thing that happens in our universe. there are other forces like electromagnetism. but most importantly, we have forgotten about good old newtonian gravity that holds big massive objects together. you see, when equations of space - time expansion are derived, nothing of the above is taken into account because all of it is negligible on the macroscopic scale. one assumes that universe is a homogenous fluid where microscopic fluid particles are the size of the galaxies ( it takes some getting used to to think about galaxies as being microscopic ). so it shouldn't be surprising that this model doesn't tell us anything about the stability of galaxies ; not to mention planets, houses or tables. and conversely, when investigating stability of objects you don't really need to account for space - time expansion unless you get to the scale of galaxies and even there the effect isn't that big.


until someone identifies an ‘ update ’ function in pymol, i think the next best thing is to use scripting. ( see the pymol wiki ) it is an imperfect solution, but it may work for the situation presented in the original post if the session may be reproduced. to begin capturing the commands in pymol, including menu selections to a script file, select : file - > log file - > open - > myscript. pml when done with creating the display panels, select : file - > log file - > close the input data files and the script itself may then be updated or replaced. in a fresh pymol session, execute the script with : file - > run script - > myscript. pml to test the above, i generated a pymol session where i captured a script as above. i loaded the atomic coordinates of a small protein, a ligand and a 2mfobs - dfcalc electron density map. then i displayed some panels along with mesh surface around the compound. the co - structure was then re - refined, thus generating modified atomic coordinates and electron density maps. i replaced the original files with the updates and executed the script in a fresh pymol session. the display panels were updated accordingly. i recommend the advanced scripting workshop.


you get burned because energy is transferred from the hot object to your hand until they are both at the same temperature. the more energy transferred, the more damage done to you. aluminium, like most metals, has a lower heat capacity than water ( ie you ) so transferring a small amount of energy lowers the temperature of aluminium more than it heats you ( about 5x as much ). next the mass of the aluminium foil is very low - there isn't much metal to hold the heat, and finally the foil is probably crinkled so although it is a good conductor of heat you are only touching a very small part of the surface area so the heat flow to you is low. if you put your hand flat on an aluminium engine block at the same temperature you would get burned. the same thing applies to the sparks from a grinder or firework " sparkler ", the sparks are hot enough to be molten iron - but are so small they contain very little energy.


biological examples similar to programming statements : if : transcriptional activator ; when present a gene will be transcribed. in general there is no termination of events unless the signal is gone ; the program ends only with the death of the cell. so the if statement is always a part of a loop. while : transcriptional repressor ; gene will be transcribed until repressor is not present. there are no equivalents of function calls. all events happen is the same space and there is always a likelihood of interference. one can argue that organelles can act as a compartment that may have a function like properties but they are highly complex and are not just some kind of input - output devices. goto is always dependent on a condition. this can happen in case of certain network connections such as feedforward loops and branched pathways. for example if there is a signalling pathway like this : a → b → c and there is another connection d → c then if somehow d is activated it will directly affect c, making a and b dispensable. logic gates have been constructed using synthetic biological circuits. see this review for more information. note molecular biological processes cannot be directly compared to a computer code. it is the underlying logic that is important and not the statement construct itself and these examples should not be taken as absolute analogies. it is also to be noted that dna is just a set of instructions and not really a fully functional entity ( it is functional to some extent ). however, even being just a code it is comparable to a hll code that has to be compiled to execute its functions. see this post too. it is also important to note that the cell, like many other physical systems, is analog in nature. therefore, in most situations there is no 0 / 1 ( binary ) value of variables. consider gene expression. if a transcriptional activator is present, the gene will be transcribed. however, if you keep increasing the concentration of the activator, the expression of that gene will increase until it reaches a saturation point. so there is no digital logic here. having said that, i would add that switching behaviour is possible in biological systems ( including gene expression ) and is also used in many cases. certain kinds of regulatory network structures can give rise to such dynamics. co - operativity with or without positive feedback is one of the mechanisms that can implement switching behaviour. for more details read about ultrasensitivity. also check out " can molecular genetics make a boolean variable from a continuous


variable? "


i agree completely with srikant's explanation. to give a more heuristic spin on it : classical approaches generally posit that the world is one way ( e. g., a parameter has one particular true value ), and try to conduct experiments whose resulting conclusion - - no matter the true value of the parameter - - will be correct with at least some minimum probability. as a result, to express uncertainty in our knowledge after an experiment, the frequentist approach uses a " confidence interval " - - a range of values designed to include the true value of the parameter with some minimum probability, say 95 %. a frequentist will design the experiment and 95 % confidence interval procedure so that out of every 100 experiments run start to finish, at least 95 of the resulting confidence intervals will be expected to include the true value of the parameter. the other 5 might be slightly wrong, or they might be complete nonsense - - formally speaking that's ok as far as the approach is concerned, as long as 95 out of 100 inferences are correct. ( of course we would prefer them to be slightly wrong, not total nonsense. ) bayesian approaches formulate the problem differently. instead of saying the parameter simply has one ( unknown ) true value, a bayesian method says the parameter's value is fixed but has been chosen from some probability distribution - - known as the prior probability distribution. ( another way to say that is that before taking any measurements, the bayesian assigns a probability distribution, which they call a belief state, on what the true value of the parameter happens to be. ) this " prior " might be known ( imagine trying to estimate the size of a truck, if we know the overall distribution of truck sizes from the dmv ) or it might be an assumption drawn out of thin air. the bayesian inference is simpler - - we collect some data, and then calculate the probability of different values of the parameter given the data. this new probability distribution is called the " a posteriori probability " or simply the " posterior. " bayesian approaches can summarize their uncertainty by giving a range of values on the posterior probability distribution that includes 95 % of the probability - - this is called a " 95 % credibility interval. " a bayesian partisan might criticize the frequentist confidence interval like this : " so what if 95 out of 100 experiments yield a confidence interval that includes the true value? i don't care about 99 experiments i didn't do ; i care about this experiment i did do


. your rule allows 5 out of the 100 to be complete nonsense [ negative values, impossible values ] as long as the other 95 are correct ; that's ridiculous. " a frequentist die - hard might criticize the bayesian credibility interval like this : " so what if 95 % of the posterior probability is included in this range? what if the true value is, say, 0. 37? if it is, then your method, run start to finish, will be wrong 75 % of the time. your response is,'oh well, that's ok because according to the prior it's very rare that the value is 0. 37,'and that may be so, but i want a method that works for any possible value of the parameter. i don't care about 99 values of the parameter that it doesn't have ; i care about the one true value it does have. oh also, by the way, your answers are only correct if the prior is correct. if you just pull it out of thin air because it feels right, you can be way off. " in a sense both of these partisans are correct in their criticisms of each others'methods, but i would urge you to think mathematically about the distinction - - as srikant explains. here's an extended example from that talk that shows the difference precisely in a discrete example. when i was a child my mother used to occasionally surprise me by ordering a jar of chocolate - chip cookies to be delivered by mail. the delivery company stocked four different kinds of cookie jars - - type a, type b, type c, and type d, and they were all on the same truck and you were never sure what type you would get. each jar had exactly 100 cookies, but the feature that distinguished the different cookie jars was their respective distributions of chocolate chips per cookie. if you reached into a jar and took out a single cookie uniformly at random, these are the probability distributions you would get on the number of chips : a type - a cookie jar, for example, has 70 cookies with two chips each, and no cookies with four chips or more! a type - d cookie jar has 70 cookies with one chip each. notice how each vertical column is a probability mass function - - the conditional probability of the number of chips you'd get, given that the jar = a, or b, or c, or d, and each column sums to 100. i used to love to play a game as soon as the deliveryman dropped off


my new cookie jar. i'd pull one single cookie at random from the jar, count the chips on the cookie, and try to express my uncertainty - - at the 70 % level - - of which jars it could be. thus it's the identity of the jar ( a, b, c or d ) that is the value of the parameter being estimated. the number of chips ( 0, 1, 2, 3 or 4 ) is the outcome or the observation or the sample. originally i played this game using a frequentist, 70 % confidence interval. such an interval needs to make sure that no matter the true value of the parameter, meaning no matter which cookie jar i got, the interval would cover that true value with at least 70 % probability. an interval, of course, is a function that relates an outcome ( a row ) to a set of values of the parameter ( a set of columns ). but to construct the confidence interval and guarantee 70 % coverage, we need to work " vertically " - - looking at each column in turn, and making sure that 70 % of the probability mass function is covered so that 70 % of the time, that column's identity will be part of the interval that results. remember that it's the vertical columns that form a p. m. f. so after doing that procedure, i ended up with these intervals : for example, if the number of chips on the cookie i draw is 1, my confidence interval will be { b, c, d }. if the number is 4, my confidence interval will be { b, c }. notice that since each column sums to 70 % or greater, then no matter which column we are truly in ( no matter which jar the deliveryman dropped off ), the interval resulting from this procedure will include the correct jar with at least 70 % probability. notice also that the procedure i followed in constructing the intervals had some discretion. in the column for type - b, i could have just as easily made sure that the intervals that included b would be 0, 1, 2, 3 instead of 1, 2, 3, 4. that would have resulted in 75 % coverage for type - b jars ( 12 + 19 + 24 + 20 ), still meeting the lower bound of 70 %. my sister bayesia thought this approach was crazy, though. " you have to consider the deliverman as part of the system, " she said. " let's treat the identity of the jar as a random variable itself,


and let's assume that the deliverman chooses among them uniformly - - meaning he has all four on his truck, and when he gets to our house he picks one at random, each with uniform probability. " " with that assumption, now let's look at the joint probabilities of the whole event - - the jar type and the number of chips you draw from your first cookie, " she said, drawing the following table : notice that the whole table is now a probability mass function - - meaning the whole table sums to 100 %. " ok, " i said, " where are you headed with this? " " you've been looking at the conditional probability of the number of chips, given the jar, " said bayesia. " that's all wrong! what you really care about is the conditional probability of which jar it is, given the number of chips on the cookie! your 70 % interval should simply include the list jars that, in total, have 70 % probability of being the true jar. isn't that a lot simpler and more intuitive? " " sure, but how do we calculate that? " i asked. " let's say we know that you got 3 chips. then we can ignore all the other rows in the table, and simply treat that row as a probability mass function. we'll need to scale up the probabilities proportionately so each row sums to 100, though. " she did : " notice how each row is now a p. m. f., and sums to 100 %. we've flipped the conditional probability from what you started with - - now it's the probability of the man having dropped off a certain jar, given the number of chips on the first cookie. " " interesting, " i said. " so now we just circle enough jars in each row to get up to 70 % probability? " we did just that, making these credibility intervals : each interval includes a set of jars that, a posteriori, sum to 70 % probability of being the true jar. " well, hang on, " i said. " i'm not convinced. let's put the two kinds of intervals side - by - side and compare them for coverage and, assuming that the deliveryman picks each kind of jar with equal probability, credibility. " here they are : confidence intervals : credibility intervals : " see how crazy your confidence intervals are? " said bayesia. " you don't even have a sensible answer when you


draw a cookie with zero chips! you just say it's the empty interval. but that's obviously wrong - - it has to be one of the four types of jars. how can you live with yourself, stating an interval at the end of the day when you know the interval is wrong? and ditto when you pull a cookie with 3 chips - - your interval is only correct 41 % of the time. calling this a'70 %'confidence interval is bullshit. " " well, hey, " i replied. " it's correct 70 % of the time, no matter which jar the deliveryman dropped off. that's a lot more than you can say about your credibility intervals. what if the jar is type b? then your interval will be wrong 80 % of the time, and only correct 20 % of the time! " " this seems like a big problem, " i continued, " because your mistakes will be correlated with the type of jar. if you send out 100'bayesian'robots to assess what type of jar you have, each robot sampling one cookie, you're telling me that on type - b days, you will expect 80 of the robots to get the wrong answer, each having > 73 % belief in its incorrect conclusion! that's troublesome, especially if you want most of the robots to agree on the right answer. " " plus we had to make this assumption that the deliveryman behaves uniformly and selects each type of jar at random, " i said. " where did that come from? what if it's wrong? you haven't talked to him ; you haven't interviewed him. yet all your statements of a posteriori probability rest on this statement about his behavior. i didn't have to make any such assumptions, and my interval meets its criterion even in the worst case. " " it's true that my credibility interval does perform poorly on type - b jars, " bayesia said. " but so what? type b jars happen only 25 % of the time. it's balanced out by my good coverage of type a, c, and d jars. and i never publish nonsense. " " it's true that my confidence interval does perform poorly when i've drawn a cookie with zero chips, " i said. " but so what? chipless cookies happen, at most, 27 % of the time in the worst case ( a type - d jar ). i can afford to give nonsense for this outcome because


no jar will result in a wrong answer more than 30 % of the time. " " the column sums matter, " i said. " the row sums matter, " bayesia said. " i can see we're at an impasse, " i said. " we're both correct in the mathematical statements we're making, but we disagree about the appropriate way to quantify uncertainty. " " that's true, " said my sister. " want a cookie? "


yes, this helps as well with other infectious diseases. a good example is the flu, which season was measurably shorter this year than in other years on record. see the figure from the reference 1 for comparision : reference 2 shows that this is also true for other respiratory diseases ( figure 2 ) : this shows very well that the isolation measures and the social distancing work very well to control such transmissable diseases. references : how coronavirus lockdowns stopped flu in its tracks monitoring respiratory infections in covid - 19 epidemics


to follow up what mbq said, there have been a number of " origin of life " studies which suggest that rna was a precursor to dna, the so - called " rna world " ( 1 ). since rna can carry out both roles which dna and proteins perform today. further speculations suggest things like a peptide - nucleic acids " pna " may have preceded rna and so on. catalytic molecules and genetic molecules are generally required to have different features. for example, catalytic molecules should be able to fold and have many building blocks ( for catalytic action ), whereas genetic molecules should not fold ( for template synthesis ) and have few building blocks ( for high copy fidelity ). this puts a lot of demands on one molecule. also, catalytic biopolymers can ( potentially ) catalyse their own destruction. rna seems to be able to balance these demands, but then the difficulty is in making rna prebiotically - so far his has not been achieved. this has lead to interest in " metabolism first " models where early life has no genetic biopolymer and somehow gives rise to genetic inheritance. however, so far this seems to have been little explored and largely unsuccessful ( 2 ). edit i just saw this popular article in new scientist which also discusses tna ( threose nucleic acid ) and gives some background reading for pna, gna ( glycol nucleic acid ) and ana ( amyloid nucleic acid ). ( 1 ) gilbert, w., 1986, nature, 319, 618 " origin of life : the rna world " ( 2 ) copley et al., 2007, bioorg chem, 35, 430 " the origin of the rna world : co - evolution of genes and metabolism. "


storing local variables on a stack is an implementation detail – basically an optimization. you can think of it this way. when entering a function, space for all local variables is allocated somewhere. you can then access all variables, since you know their location somehow ( this is part of the process of allocation ). when leaving a function, the space is deallocated ( freed ). the stack is one way of implementing this process – you can think of it as a kind of " fast heap " which has limited size and so is only appropriate for small variables. as an additional optimization, all local variables are stored in one block. since each local variable has known size, you know the offset of each variable in the block, and that is how you access it. this is in contrast to variables allocated on the heap, whose addresses are themselves stored in other variables. you can think of the stack as very similar to the classical stack data structure, with one crucial difference : you are allowed to access items below the top - of - stack. indeed, you can access the $ k $ th item from the top. this is how you can access all your local variables with pushing and popping. the only pushing being done is upon entering the function, and the only popping upon leaving the function. finally, let me mention that in practice, some of the local variables are stored in registers. this is since access to registers is faster than access to the stack. this is another way of implementing a space for local variables. once again, we know exactly where a variable is stored ( this time not via offset, but via the name of a register ), and this kind of storage is only appropriate for small data.


there is a wide variety of algorithms ; barnes hut is a popular $ \ mathcal { o } ( n \ log n ) $ method, and the fast multipole method is a much more sophisticated $ \ mathcal { o } ( n ) $ alternative. both methods make use of a tree data structure where nodes essentially only interact with their nearest neighbors at each level of the tree ; you can think of splitting the tree between the set of processes at a sufficient depth, and then having them cooperate only at the highest levels. you can find a recent paper discussing fmm on petascale machines here.


the color burst is also an indicator that there is a color signal. this is for compatibility with black and white signals. no color burst means b & w signal, so only decode the luminance signal ( no croma ). no signal, no color burst, so the decoder falls back to b & w mode. same idea goes to fm stereo / mono. if there is no 19 khz subcarrier present, then the fm demodulator falls back to mono.


this is to expand on leon's suggestion to use a hub. the usb hubs are not all created equal. unofficially, there are several " grades " : cheap hubs. these are cost optimized to the point where they don't adhere to the usb spec any more. often, the + 5v lines of the downstream ports are wired directly to the computer. no protection switches. maybe a polyfuse, if lucky. edit : here's a thread where the o. p. is complaninig that an improperly designed usb hub is back - feeding his pc. decent hubs. the downstream + 5v is connected through a switch with over - current protection. esd protection is usually present. industrial hubs. there's usually respectable overvoltage protection in the form of tvs and resettable fuses. isolated hubs. there's actual galvanic isolation between upstream port and downstream ports. isolation rating tends to be 2kv to 5kv. isolated hubs are used when a really high voltage can come from a downstream port ( e. g. mains ac, defibrillator, back emf from a large motor ). isolated hubs are also used for breaking ground loops in vanilla conditions. what to use depends on the type of threat you're expecting. if you're concerned with shorts between power and data lines, you could use a decent hub. in the worst case, the hub controller will get sacrificed, but it will save the port on the laptop. if you're concerned that a voltage higher than + 5v can get to the pc, you can fortify the hub with overvoltage protection consisting of tvs & polyfuse. however, i'm still talking about relatively low voltages on the order of + 24v. if you're concerned with really high voltages, consider isolated hub, gas discharge tubes. consider using a computer which you can afford to lose.


unlike the conventional wisdom, the pain you feel the next day ( after a strenuous exercise ) has nothing to do with lactic acid. actually, lactic acid is rapidly removed from the muscle cell and converted to other substances in the liver ( see cori cycle ). if you start to feel your muscles " burning " during exercise ( due to lactic acid ), you just need to rest for some seconds, and the " burning " sensation disappears. according to scientific american : contrary to popular opinion, lactate or, as it is often called, lactic acid buildup is not responsible for the muscle soreness felt in the days following strenuous exercise. rather, the production of lactate and other metabolites during extreme exertion results in the burning sensation often felt in active muscles. researchers who have examined lactate levels right after exercise found little correlation with the level of muscle soreness felt a few days later. ( emphasis mine ) so if it's not lactic acid, what is the cause of the pain? what you're feeling in the next day is called delayed onset muscle soreness ( doms ). doms is basically an inflammatory process ( with accumulation of histamine and prostaglandins ), due to microtrauma or micro ruptures in the muscle fibers. the soreness can last from some hours to a couple of days or more, depending on the severity of the trauma ( see below ). according to the " damage hypothesis " ( also known as " micro tear model " ), microruptures are necessary for hypertrophy ( if you are working out seeking hypertrophy ), and that explains why lifting very little weight doesn't promote hypertrophy. however, this same microtrauma promotes an inflammatory reaction ( tiidus, 2008 ). this inflammation can take some time to develop ( that's why you normally feel the soreness the next day ) and, like a regular inflammation, has as signs pain, edema and heat. this figure from mcardle ( 2010 ) shows the proposed sequence for doms : figure : proposed sequence for delayed - onset muscle soreness. source : mcardle ( 2010 ). as anyone who works out at the gym knows, deciding how much weight to add to the barbell can be complicated : too little weight promotes no microtrauma, and you won't have any hypertrophy. too much weight leads to too much microtraumata, and you'll have trouble


to get out of the bed the next day. edit : this comment asks if there is evidence of the " micro tear model " or " damage model " ( also eimd, or exercise - induced muscle damage ). first, that's precisely why i was careful when i used the term hypothesis. second, despite the matter not being settled, there is indeed evidence supporting eimd. this meta - analysis ( schoenfeld, 2012 ) says : there is a sound theoretical rationale supporting a potential role for eimd in the hypertrophic response. although it appears that muscle growth can occur in the relative absence of muscle damage, potential mechanisms exist whereby eimd may enhance the accretion of muscle proteins including the release of inflammatory agents, activation of satellite cells, and upregulation of igf - 1 system, or at least set in motion the signaling pathways that lead to hypertrophy. the same paper, however, discuss the problems of eimd and a few alternative hypotheses ( some of them not mutually exclusive, though ). sources : tiidus, p. ( 2008 ). skeletal muscle damage and repair. champaign : human kinetics. mcardle, w., katch, f. and katch, v. ( 2010 ). exercise physiology. baltimore : wolters kluwer health / lippincott williams & wilkins. roth, s. ( 2017 ). why does lactic acid build up in muscles? and why does it cause soreness?. [ online ] scientific american. available at : [ accessed 22 jun. 2017 ]. schoenfeld, b. ( 2012 ). does exercise - induced muscle damage play a role in skeletal muscle hypertrophy?. journal of strength and conditioning research, 26 ( 5 ), pp. 1441 - 1453.


unfortunately the other 3 answers to the question are incorrect, but helps keeping a common misunderstanding alive : - ) thieving is added to the outer layers in order to help a more balanced chemical process for the plating. also notice that there is no need to " balance copper " ( or stackups for that matter ) in modern pcb fabrication to avoid " warped boards ". i wrote about this on my blog recently. you can find other references on the net.


zeroing bins in the frequency domain is the same as multiplying by a rectangular window in the frequency domain. multiplying by a window in the frequency domain is the same as circular convolution by the transform of that window in the time domain. the transform of a rectangular window is the sinc function ( $ \ sin ( \ omega t ) / \ omega t $ ). note that the sinc function has lots of large ripples and ripples that extend the full width of time domain aperture. if a time - domain filter that can output all those ripples ( ringing ) is a " bad idea ", then so is zeroing bins. these ripples will be largest for any spectral content that is " between bins " or non - integer - periodic in the fft aperture width. so if your original fft input data is a window on any data that is somewhat non - periodic in that window ( e. g. most non - synchronously sampled " real world " signals ), then those particular artifacts will be produced by zero - ing bins. another way to look at it is that each fft result bin represents a certain frequency of sine wave in the time domain. thus zeroing a bin will produce the same result as subtracting that sine wave, or, equivalently, adding a sine wave of an exact fft bin center frequency but with the opposite phase. note that if the frequency of some content in the time domain is not purely integer periodic in the fft width, then trying to cancel a non - integer periodic signal by adding the inverse of an exactly integer periodic sine wave will produce, not silence, but something that looks more like a " beat " note ( am modulated sine wave of a different frequency ). again, probably not what is wanted. conversely, if your original time domain signal is just a few pure unmodulated sinusoids that are all exactly integer periodic in the fft aperture width, then zero - ing fft bins will remove the designated ones without artifacts.


this is the xkcd nerd sniping problem. it forced me to abandon everything else i was doing to research and write up this answer. then, years later, it compelled me to return and edit it for clarity. the following full solution is based on the links posted in the other answer. but in addition to presenting this information in a convenient form, i've also made some significant simplifications of my own. now, nothing more than high school integration is needed! the strategy in a nutshell is to write down an expression for the resistance between any two points as an integral. use integration tricks to evaluate the integral found in step 1 for two diagonally separated points. use a recurrence relation to determine all other resistances from the ones found in step 2. the result is an expression for all resistances, of which the knight's move is just one. the answer for it turns out to be $ $ \ frac { 4 } { \ pi } - \ frac { 1 } { 2 } $ $ setting up the problem while we're ultimately interested in a two - dimensional grid, to start with nothing will depend on the dimension. therefore we will begin by working in $ n $ dimensions, and specialise to $ n = 2 $ only when necessary. label the grid points by $ \ vec { n } $, an $ n $ - component vector with integer components. suppose the voltage at each point is $ v _ \ vec { n } $. then the current flowing into $ \ vec { n } $ from its $ 2n $ neighbours is $ $ \ sum _ { i, \ pm } ( v _ { \ vec { n } \ pm \ vec { e } _ i } - v _ \ vec { n } ) $ $ ( $ \ vec { e } _ i $ is the unit vector along the $ i $ - direction. ) insist that an external source is pumping one amp into $ \ vec { 0 } $ and out of $ \ vec { a } $. current conservation at $ \ vec { n } $ gives $ $ \ sum _ { i, \ pm } ( v _ { \ vec { n } \ pm \ vec { e } _ i } - v _ \ vec { n } ) = - \ delta _ \ vec { n } + \ delta _ { \ vec { n } - \ vec { a } }


\ tag { 1 } \ label { eqv } $ $ ( $ \ delta _ \ vec { n } $ equals $ 1 $ if $ \ vec { n } = \ vec { 0 } $ and $ 0 $ otherwise. ) solving this equation for $ v _ \ vec { n } $ will give us our answer. indeed, the resistance between $ \ vec { 0 } $ and $ \ vec { a } $ will simply be $ $ r _ \ vec { a } = v _ \ vec { 0 } - v _ \ vec { a } $ $ unfortunately, there are infinitely many solutions for $ v _ \ vec { n } $, and their results for $ r _ \ vec { a } $ do not agree! this is because the question does not specify any boundary conditions at infinity. depending on how we choose them, we can get any value of $ r _ \ vec { a } $ we like! it will turn out that there's a unique reasonable choice, but for now, let's forget about this problem completely and just find any solution. solution by fourier transform to solve our equation for $ v _ \ vec { n } $, we will look for a green's function $ g _ \ vec { n } $ satisfying a similar equation : $ $ \ sum _ { i, \ pm } ( g _ { \ vec { n } \ pm \ vec { e } _ i } - g _ \ vec { n } ) = \ delta _ \ vec { n } \ tag { 2 } \ label { eqg } $ $ a solution to $ \ eqref { eqv } $ will then be $ $ v _ n = - g _ \ vec { n } + g _ { \ vec { n } - \ vec { a } } $ $ to find $ g _ \ vec { n } $, assume ( out of the blue ) that it can be represented as $ $ g _ \ vec { n } = \ int _ 0 ^ { 2 \ pi } \ frac { d ^ n \ vec { k } } { ( 2 \ pi ) ^ n } ( e ^ { i \ vec { k } \ cdot \ vec { n } } - 1 ) g ( \ vec { k } ) $ $ for some unknown function $ g ( \


vec { k } ) $. then noting that the two sides of $ \ eqref { eqg } $ can be written as \ begin { align } \ sum _ { i, \ pm } ( g _ { \ vec { n } \ pm \ vec { e } _ i } - g _ \ vec { n } ) & = \ int _ 0 ^ { 2 \ pi } \ frac { d ^ n \ vec { k } } { ( 2 \ pi ) ^ n } e ^ { i \ vec { k } \ cdot \ vec { n } } \ left ( \ sum _ { i, \ pm } e ^ { \ pm i k _ i } - 2n \ right ) g ( \ vec { k } ) \ \ \ delta _ \ vec { n } & = \ int _ 0 ^ { 2 \ pi } \ frac { d ^ n \ vec { k } } { ( 2 \ pi ) ^ n } e ^ { i \ vec { k } \ cdot \ vec { n } } \ end { align } we see $ \ eqref { eqg } $ can be solved by choosing $ $ g ( \ vec { k } ) = \ frac { 1 } { \ sum _ { i, \ pm } e ^ { \ pm k _ i } - 2n } $ $ which leads to the green's function $ $ g _ \ vec { n } = \ frac { 1 } { 2 } \ int _ 0 ^ { 2 \ pi } \ frac { d ^ n \ vec { k } } { ( 2 \ pi ) ^ n } \ frac { \ cos ( \ vec { k } \ cdot \ vec { n } ) - 1 } { \ sum _ i \ cos ( k _ i ) - n } $ $ by the way, the funny $ - 1 $ in the numerator doesn't seem to be doing much other than shifting $ g _ \ vec { n } $ by the addition of an overall constant, so you might wonder what it's doing there. the answer is that it's technically needed to make the integral finite, but other than that it doesn't matter as it will cancel out of the answer. so the final answer for the resistance is $ $ r _ \ vec { a


} = v _ \ vec { 0 } - v _ \ vec { a } = 2 ( g _ \ vec { a } - g _ \ vec { 0 } ) = \ int _ 0 ^ { 2 \ pi } \ frac { d ^ n \ vec { k } } { ( 2 \ pi ) ^ n } \ frac { 1 - \ cos ( \ vec { k } \ cdot \ vec { a } ) } { n - \ sum _ i \ cos ( k _ i ) } $ $ why is this the right answer? ( from this point on, $ n = 2 $. ) i said earlier that there were infinitely many solutions for $ v _ \ vec { n } $. but the one above is special, because at large distances $ r $ from the origin, the voltages and currents behave like $ $ v = \ mathcal { o } ( 1 / r ) \ qquad i = \ mathcal { o } ( 1 / r ^ 2 ) $ $ a standard theorem ( uniqueness of solutions to laplace's equation ) says there can be only one solution satisfying this condition. so our solution is the unique one with the least possible current flowing at infinity and with $ v _ \ infty = 0 $. and even if the question didn't ask for that, it's obviously the only reasonable thing to ask. or is it? maybe you'd prefer to define the problem by working on a finite grid, finding the unique solution for $ v _ \ vec { n } $ there, then trying to take some sort of limit as the grid size goes to infinity. however, one can argue that the $ v _ \ vec { n } $ obtained from a size - $ l $ grid should converge to our $ v _ \ vec { n } $ with an error of order $ 1 / l $. so the end result is the same. the diagonal case it turns out the integral for $ r _ { n, m } $ is tricky to do when $ n \ neq m $, but much easier to do when $ n = m $. therefore, we'll deal with that case first. we want to calculate \ begin { align } r _ { n, n } & = \ frac { 1 } { ( 2 \ pi ) ^ 2 } \ int _ a dx \, dy \, \ frac


{ 1 - \ cos ( n ( x + y ) ) } { 2 - \ cos ( x ) - \ cos ( y ) } \ \ & = \ frac { 1 } { 2 ( 2 \ pi ) ^ 2 } \ int _ a dx \, dy \, \ frac { 1 - \ cos ( n ( x + y ) ) } { 1 - \ cos ( \ frac { x + y } { 2 } ) \ cos ( \ frac { x - y } { 2 } ) } \ end { align } where $ a $ is the square $ 0 \ leq x, y \ leq 2 \ pi $. because the integrand is periodic, the domain can be changed from $ a $ to $ a'$ like so : then changing variables to $ $ a = \ frac { x + y } { 2 } \ qquad b = \ frac { x - y } { 2 } \ qquad dx \, dy = 2 \, da \, db $ $ the integral becomes $ $ r _ { n, n } = \ frac { 1 } { ( 2 \ pi ) ^ 2 } \ int _ 0 ^ \ pi da \ int _ { - \ pi } ^ \ pi db \, \ frac { 1 - \ cos ( 2na ) } { 1 - \ cos ( a ) \ cos ( b ) } $ $ the $ b $ integral can be done with the half - tan substitution $ $ t = \ tan ( b / 2 ) \ qquad \ cos ( b ) = \ frac { 1 - t ^ 2 } { 1 + t ^ 2 } \ qquad db = \ frac { 2 } { 1 + t ^ 2 } dt $ $ giving $ $ r _ { n, n } = \ frac { 1 } { 2 \ pi } \ int _ 0 ^ \ pi da \, \ frac { 1 - \ cos ( 2na ) } { \ sin ( a ) } $ $ the trig identity $ $ 1 - \ cos ( 2na ) = 2 \ sin ( a ) \ big ( \ sin ( a ) + \ sin ( 3a ) + \ dots + \ sin ( ( 2n - 1 ) a ) \ big ) $ $ reduces the remaining $ a $ integral to \ begin { align } r _ { n


, n } & = \ frac { 2 } { \ pi } \ left ( 1 + \ frac { 1 } { 3 } + \ dots + \ frac { 1 } { 2n - 1 } \ right ) \ end { align } a recurrence relation the remaining resistances can in fact be determined without doing any more integrals! all we need is rotational / reflectional symmetry, $ $ r _ { n, m } = r _ { \ pm n, \ pm m } = r _ { \ pm m, \ pm n } $ $ together with the recurrence relation $ $ r _ { n + 1, m } + r _ { n - 1, m } + r _ { n, m + 1 } + r _ { n, m - 1 } - 4 r _ { n, m } = 2 \ delta _ { ( n, m ) } $ $ which follows from $ r _ \ vec { n } = 2 g _ \ vec { n } $ and $ \ eqref { eqg } $. it says that if we know all resistances but one in a " plus " shape, then we can determine the missing one. start off with the trivial statement that $ $ r _ { 0, 0 } = 0 $ $ applying the recurrence relation at $ ( n, m ) = ( 0, 0 ) $ and using symmetry gives $ $ r _ { 1, 0 } = r _ { 0, 1 } = 1 / 2 $ $ the next diagonal is done like so : here the turquoise square means that we fill in $ r _ { 1, 1 } $ using the formula for $ r _ { n, n } $. the yellow squares indicate an appliation of the recurrence relation to determine $ r _ { 2, 0 } $ and $ r _ { 0, 2 } $. the dotted squares also indicate resistances we had to determine by symmetry during the previous step. the diagonal after that is done similarly, but without the need to invoke the formula for $ r _ { n, n } $ : repeatedly alternating the two steps above yields an algorithm for determining every $ r _ { m, n } $. clearly, all are of the form $ $ a + b / \ pi $ $ where $ a $ and $ b $ are rational numbers. now this algorithm can easily be performed by hand, but one might as well code it up


in python : import numpy as np import fractions as fr n = 4 arr = np. empty ( ( n * 2 + 1, n * 2 + 1, 2 ), dtype ='object') def plus ( i, j ) : arr [ i + 1, j ] = 4 * arr [ i, j ] - arr [ i - 1, j ] - arr [ i, j + 1 ] - arr [ i, abs ( j - 1 ) ] def even ( i ) : arr [ i, i ] = arr [ i - 1, i - 1 ] + [ 0, fr. fraction ( 2, 2 * i - 1 ) ] for k in range ( 1, i + 1 ) : plus ( i + k - 1, i - k ) def odd ( i ) : arr [ i + 1, i ] = 2 * arr [ i, i ] - arr [ i, i - 1 ] for k in range ( 1, i + 1 ) : plus ( i + k, i - k ) arr [ 0, 0 ] = 0 arr [ 1, 0 ] = [ fr. fraction ( 1, 2 ), 0 ] for i in range ( 1, n ) : even ( i ) odd ( i ) even ( n ) for i in range ( 0, n + 1 ) : for j in range ( 0, n + 1 ) : a, b = arr [ max ( i, j ), min ( i, j ) ] print ('( ', a,') + ( ', b,') / π ', sep ='', end ='\ t') print ( ) this produces the output $ $ \ large \ begin { array } { | c : c : c : c : c } 40 - \ frac { 368 } { 3 \ pi } & \ frac { 80 } { \ pi } - \ frac { 49 } { 2 } & 6 - \ frac { 236 } { 15 \ pi } & \ frac { 24 } { 5 \ pi } - \ frac { 1 } { 2 } & \ frac { 352 } { 105 \ pi } \ \ \ hdashline \ frac { 17 } { 2 } - \ frac { 24 } { \ pi } & \ frac { 46 } { 3 \ pi } - 4 &


\ frac { 1 } { 2 } + \ frac { 4 } { 3 \ pi } & \ frac { 46 } { 15 \ pi } & \ frac { 24 } { 5 \ pi } - \ frac { 1 } { 2 } \ \ \ hdashline 2 - \ frac { 4 } { \ pi } & \ frac { 4 } { \ pi } - \ frac { 1 } { 2 } & \ frac { 8 } { 3 \ pi } & \ frac { 1 } { 2 } + \ frac { 4 } { 3 \ pi } & 6 - \ frac { 236 } { 15 \ pi } \ \ \ hdashline \ frac { 1 } { 2 } & \ frac { 2 } { \ pi } & \ frac { 4 } { \ pi } - \ frac { 1 } { 2 } & \ frac { 46 } { 3 \ pi } - 4 & \ frac { 80 } { \ pi } - \ frac { 49 } { 2 } \ \ \ hdashline 0 & \ frac { 1 } { 2 } & 2 - \ frac { 4 } { \ pi } & \ frac { 17 } { 2 } - \ frac { 24 } { \ pi } & 40 - \ frac { 368 } { 3 \ pi } \ \ \ hline \ end { array } $ $ from which we can read off the final answer, $ $ r _ { 2, 1 } = \ frac { 4 } { \ pi } - \ frac { 1 } { 2 } $ $


in 1933, kurt godel showed that the class called $ \ lbrack \ exists ^ * \ forall ^ 2 \ exists ^ *, { \ mathrm { all } }, ( 0 ) \ rbrack $ was decidable. these are the formulas that begin with $ \ exists a \ exists b \ ldots \ exists m \ forall n \ forall p \ exists q \ ldots \ exists z $, with exactly two $ \ forall $ quantifiers, with no intervening $ \ exists $ s. these formulas may contain arbitrary relations amongst the variables, but no functions or constants, and no equality symbol. godel showed that there is a method which takes any formula in this form and decides whether it is satisfiable. ( if there are three $ \ forall $ s in a row, or an $ \ exists $ between the $ \ forall $ s, there is no such method. ) in the final sentence of the same paper, godel added : in conclusion, i would still like to remark that theorem i can also be proved, by the same method, for formulas that contain the identity sign. mathematicians took godel's word for it, and proved results derived from this one, until the mid - 1960s, when stal aanderaa realized that godel had been mistaken, and the argument godel used would not work. in 1983, warren goldfarb showed that not only was godel's argument invalid, but his claimed result was actually false, and the larger class was not decidable. godel's original 1933 paper is zum entscheidungsproblem des logischen funktionenkalkuls ( on the decision problem for the functional calculus of logic ) which can be found on pages 306 – 327 of volume i of his collected works. ( oxford university press, 1986. ) there is an introductory note by goldfarb on pages 226 – 231, of which pages 229 – 231 address godel's error specifically.


the shortest answer : never, unless you are sure that your linear approximation of the data generating process ( linear regression model ) either by some theoretical or any other reasons is forced to go through the origin. if not the other regression parameters will be biased even if intercept is statistically insignificant ( strange but it is so, consult brooks introductory econometrics for instance ). finally, as i do often explain to my students, by leaving the intercept term you insure that the residual term is zero - mean. for your two models case we need more context. it may happen that linear model is not suitable here. for example, you need to log transform first if the model is multiplicative. having exponentially growing processes it may occasionally happen that $ r ^ 2 $ for the model without the intercept is " much " higher. screen the data, test the model with reset test or any other linear specification test, this may help to see if my guess is true. and, building the models highest $ r ^ 2 $ is one of the last statistical properties i do really concern about, but it is nice to present to the people who are not so well familiar with econometrics ( there are many dirty tricks to make determination close to 1 : ) ).


there are a few good answers to this question, depending on the audience. i've used all of these on occasion. a way to solve polynomials we came up with equations like $ x - 5 = 0 $, what is $ x $?, and the naturals solved them ( easily ). then we asked, " wait, what about $ x + 5 = 0 $? " so we invented negative numbers. then we asked " wait, what about $ 2x = 1 $? " so we invented rational numbers. then we asked " wait, what about $ x ^ 2 = 2 $? " so we invented irrational numbers. finally, we asked, " wait, what about $ x ^ 2 = - 1 $? " this is the only question that was left, so we decided to invent the " imaginary " numbers to solve it. all the other numbers, at some point, didn't exist and didn't seem " real ", but now they're fine. now that we have imaginary numbers, we can solve every polynomial, so it makes sense that that's the last place to stop. pairs of numbers this explanation goes the route of redefinition. tell the listener to forget everything he or she knows about imaginary numbers. you're defining a new number system, only now there are always pairs of numbers. why? for fun. then go through explaining how addition / multiplication work. try and find a good " realistic " use of pairs of numbers ( many exist ). then, show that in this system, $ ( 0, 1 ) * ( 0, 1 ) = ( - 1, 0 ) $, in other words, we've defined a new system, under which it makes sense to say that $ \ sqrt { - 1 } = i $, when $ i = ( 0, 1 ) $. and that's really all there is to imaginary numbers : a definition of a new number system, which makes sense to use in most places. and under that system, there is an answer to $ \ sqrt { - 1 } $. the historical explanation explain the history of the imaginary numbers. showing that mathematicians also fought against them for a long time helps people understand the mathematical process, i. e., that it's all definitions in the end. i'm a little rusty, but i think there were certain equations that kept having parts of them which used $ \ sqrt { - 1 } $, and the mathematicians kept throwing out


the equations since there is no such thing. then, one mathematician decided to just " roll with it ", and kept working, and found out that all those square roots cancelled each other out. amazingly, the answer that was left was the correct answer ( he was working on finding roots of polynomials, i think ). which lead him to think that there was a valid reason to use $ \ sqrt { - 1 } $, even if it took a long time to understand it.


abbreviations auc = area under the curve. auroc = area under the receiver operating characteristic curve. auc is used most of the time to mean auroc, which is a bad practice since as marc claesen pointed out auc is ambiguous ( could be any curve ) while auroc is not. interpreting the auroc the auroc has several equivalent interpretations : the expectation that a uniformly drawn random positive is ranked before a uniformly drawn random negative. the expected proportion of positives ranked before a uniformly drawn random negative. the expected true positive rate if the ranking is split just before a uniformly drawn random negative. the expected proportion of negatives ranked after a uniformly drawn random positive. the expected false positive rate if the ranking is split just after a uniformly drawn random positive. going further : how to derive the probabilistic interpretation of the auroc? computing the auroc assume we have a probabilistic, binary classifier such as logistic regression. before presenting the roc curve ( = receiver operating characteristic curve ), the concept of confusion matrix must be understood. when we make a binary prediction, there can be 4 types of outcomes : we predict 0 while the true class is actually 0 : this is called a true negative, i. e. we correctly predict that the class is negative ( 0 ). for example, an antivirus did not detect a harmless file as a virus. we predict 0 while the true class is actually 1 : this is called a false negative, i. e. we incorrectly predict that the class is negative ( 0 ). for example, an antivirus failed to detect a virus. we predict 1 while the true class is actually 0 : this is called a false positive, i. e. we incorrectly predict that the class is positive ( 1 ). for example, an antivirus considered a harmless file to be a virus. we predict 1 while the true class is actually 1 : this is called a true positive, i. e. we correctly predict that the class is positive ( 1 ). for example, an antivirus rightfully detected a virus. to get the confusion matrix, we go over all the predictions made by the model, and count how many times each of those 4 types of outcomes occur : in this example of a confusion matrix, among the 50 data points that are classified, 45 are correctly classified and the 5 are misclassified. since to compare two different models it is often more convenient to have a single metric rather than several ones, we


compute two metrics from the confusion matrix, which we will later combine into one : true positive rate ( tpr ), aka. sensitivity, hit rate, and recall, which is defined as $ \ frac { tp } { tp + fn } $. intuitively this metric corresponds to the proportion of positive data points that are correctly considered as positive, with respect to all positive data points. in other words, the higher tpr, the fewer positive data points we will miss. false positive rate ( fpr ), aka. fall - out, which is defined as $ \ frac { fp } { fp + tn } $. intuitively this metric corresponds to the proportion of negative data points that are mistakenly considered as positive, with respect to all negative data points. in other words, the higher fpr, the more negative data points will be missclassified. to combine the fpr and the tpr into one single metric, we first compute the two former metrics with many different threshold ( for example $ 0. 00 ; 0. 01, 0. 02, \ dots, 1. 00 $ ) for the logistic regression, then plot them on a single graph, with the fpr values on the abscissa and the tpr values on the ordinate. the resulting curve is called roc curve, and the metric we consider is the auc of this curve, which we call auroc. the following figure shows the auroc graphically : in this figure, the blue area corresponds to the area under the curve of the receiver operating characteristic ( auroc ). the dashed line in the diagonal we present the roc curve of a random predictor : it has an auroc of 0. 5. the random predictor is commonly used as a baseline to see whether the model is useful. if you want to get some first - hand experience : python : matlab :


citing bellanger's classic digital processing of signals – theory and practice, the point is not where your cut - off frequency is, but how much attenuation you need, how much ripple in the signal you want to preserve you can tolerate and, most importantly, how narrow your transition from pass - to stopband ( transition width ) needs to be. i assume you want a linear phase filter ( though you specify minimum latency, i don't think a minimum phase filter is a good idea, in general, unless you know damn well what you're going to be doing with your signal afterwards ). in that case, the filter order ( which is the number of taps ) is $ $ n \ approx \ frac 23 \ log _ { 10 } \ left [ \ frac1 { 10 \ delta _ 1 \ delta _ 2 } \ right ] \, \ frac { f _ s } { \ delta f } $ $ with $ $ \ begin { align } f _ s & \ text { the sampling rate } \ \ \ delta f & \ text { the transition width, } \ \ & \ text { ie. the difference between end of pass band and start of stop band } \ \ \ delta _ 1 & \ text { the ripple in passband, } \ \ & \ text { ie. " how much of the original amplitude can you afford to vary " } \ \ \ delta _ 2 & \ text { the suppresion in the stop band }. \ end { align } $ $ let's plug in some numbers! you specified a cut - off frequency of $ \ frac { f _ s } { 100 } $, so i'll just go ahead and claim your transition width will not be more than half of that, so $ \ delta f = \ frac { f _ s } { 200 } $. coming from sdr / rf technology, 60 db of suppression is typically fully sufficient – hardware, without crazy costs, won't be better at keeping unwanted signals out of your input, so meh, let's not waste cpu on having a fantastic filter that's better than what your hardware can do. hence, $ \ delta _ 2 = - 60 \ text { db } = 10 ^ { - 3 } $. let's say you can live with a amplitude variation of 0. 1 % in the passband ( if you can live with more, also consider making the suppression requirement less strict ). that's


$ \ delta _ 1 = 10 ^ { - 4 } $. so, plugging this in : $ $ \ begin { align } n _ \ text { tommy's filter } & \ approx \ frac 23 \ log _ { 10 } \ left [ \ frac1 { 10 \ delta _ 1 \ delta _ 2 } \ right ] \, \ frac { f _ s } { \ delta f } \ \ & = \ frac 23 \ log _ { 10 } \ left [ \ frac1 { 10 \ cdot 10 ^ { - 4 } \ cdot10 ^ { - 3 } } \ right ] \, \ frac { f _ s } { \ frac { f _ s } { 200 } } \ \ & = \ frac 23 \ log _ { 10 } \ left [ \ frac1 { 10 \ cdot 10 ^ { - 7 } } \ right ] \, 200 \ \ & = \ frac 23 \ log _ { 10 } \ left [ \ frac1 { 10 ^ { - 6 } } \ right ] \, 200 \ \ & = \ frac 23 \ left ( \ log _ { 10 } 10 ^ 6 \ right ) \, 200 \ \ & = \ frac 23 \ cdot 6 \ cdot 200 \ \ & = 800 \ text {. } \ end { align } $ $ so with your 200 taps, you're far off, iff you use an extremely narrow pass band in your filter like i assumed you would. note that this doesn't have to be a problem – first of all, a 800 - taps filter is scary, but frankly, only at first sight : as i tested in this answer over at stackoverflow : cpus nowadays are fast, if you use someone's cpu - optimized fir implementation. for example, i used gnu radio's fft - fir implementation with exactly the filter specification outline above. i got a performance of 141 million samples per second – that might or might not be enough for you. so here's our question - specific test case ( which took me seconds to produce ) : decimation : if you are only going to keep a fraction of the input bandwidth, the output of your filter will be drastically oversampled. introducing a decimation of $ m $ means that your filter doesn't give you every output sample, but every $ m $ th one only – which normally would lead to lots and


lots of aliasing, but since you're eradicating all signal that could alias, you can savely do so. clever filter implementations ( polyphase decimators ) can reduce the computational effort by m, this way. in your case, you could easily decimate by $ m = 50 $, and then, your computer would only have to calculate $ \ frac { 1200 } { 50 } = 24 $ multiplications / accumulations per input sample – much much easier. the filters in gnu radio generally do have that capability. and this way, even out of the fft fir ( which doesn't lend itself very well to a polyphasing decimator implementation ), i can squeeze another factor of 2 in performance. can't do much more. that's pretty close to ram bandwidth, in my experience, on my system. for latency : don't care about it. really, don't, unless you need to. you're doing this with typical audio sampling rates? remember, $ 96 \, \ frac { \ text { ks } } { \ text { s } } \ overset { \ text { ridiculously } } { \ ll } 141 \, \ frac { \ text { ms } } { \ text { s } } $ mentioned above. so the time spent computing the filter output will only be relevant for ms / s live signal streaming. for dsp with offline data : well, add a delay to whatever signal you have in parallel to your filter to compensate. ( if your filter is linear phase, it's delay will be half the filter length. ) this might be relevant in a hardware implementation of the fir filter. hardware implementation : so maybe your pc's or embedded device's cpu and os really don't allow you to fulfill your latency constraints, and so you're looking into fpga - implemented firs. the first thing you'll notice is that for hardware, there's different design paradigma – a " i suppress everything but $ \ frac1 { 100 } $ of my input rate " filter needs a large bit width for the fixed point numbers you'd handle in hardware ( as oppposed to the floating point numbers on a cpu ). so that's the first reason why you'd typically split that filter into multiple, cascaded, smaller, decimating fir filters. another reason is that you can, with every cascade " step ", let your multi


##pliers ( typically, " dsp slices " ) run at a lower rate, and hence, multiplex them ( number of dsp slices is usually very limited ), using one multiplier for multiple taps. yet another reason is that especially half - band filters, i. e. lowpasses that suppress half the input band and deliver half the input rate, are very efficiently implementable in hardware ( as they have half the taps being zero, something that is hard to exploit in a cpu / simd implementation ).


great question! when i was teaching, anslyn and dougherty was a decent text for this. here are some general comments : first, please note that you cannot be sure about a mechanism. that's the real killer. you can devise experiments that are consistent with the mechanism but because you cannot devise and run all possible experiments, you can never be sure that your mechanism is correct. it only takes one good experiment to refute a mechanism. if it's inconsistent with your proposed mechanism, and you're unable to reconcile the differences, then your mechanism is wrong ( or incomplete at best ). writing mechanisms for new reactions is hard. good thing we have a whole slew of existing reactions that people already have established ( highly probable, but not 100 % guaranteed ) mechanisms for. computational chemistry is pretty awesome now and provides some really good insights into how a specific reaction takes place. it doesn't always capture all relevant factors so you need to be careful. like any tool, it can be used incorrectly. the types of reactions you run really depend heavily on the kind of reaction you're studying. here are some typical ones : labeling - - very good for complex rearrangements kinetics ( including kinetic isotope effects ) - - good for figuring out rate - determining steps stereochemistry - - good for figuring out if steps are concerted ( see this example mechanism i wrote for a different question ) capturing intermediates - - this can be pretty useful but some species that you capture aren't involved in the reaction, so be careful. substitution effects and lfer studies - - great for determining if charge build - up is accounted for in your mechanism for named reactions, the kurti - czako book generally has seminal references if you want to actually dig through the literature for experiments. for your specific reaction, what do we think the rate - determining step is? probably addition into the acylium? you could try to capture the acylium intermediate. you could run the reaction with reactants that have two labelled oxygens and reactants that have no labelled oxygens. do they mix? if not, it's fully intramolecular. otherwise, there's an intermolecular component and the mechanism as written is incomplete. a quick google search suggests that the boron trichloride mediated version has been studied via proton, deuterium, and boron nmr. i didn't follow up on this, but there's clearly some depth here. when i was


t. a. ing for greg fu, he really liked to use an example with the von richter reaction. i might be able to find those references...


the main thing is presumably that $ aa ^ t $ is symmetric. indeed $ ( aa ^ t ) ^ t = ( a ^ t ) ^ ta ^ t = aa ^ t $. for symmetric matrices one has the spectral theorem which says that we have a basis of eigenvectors and every eigenvalue is real. moreover if $ a $ is invertible, then $ aa ^ t $ is also positive definite, since $ $ x ^ taa ^ tx = ( a ^ tx ) ^ t ( a ^ tx ) > 0 $ $ then we have : a matrix is positive definite if and only if it's the gram matrix of a linear independent set of vectors. last but not least if one is interested in how much the linear map represented by $ a $ changes the norm of a vector one can compute $ $ \ sqrt { \ left < ax, ax \ right > } = \ sqrt { \ left < a ^ tax, x \ right > } $ $ which simplifies for eigenvectors $ x $ to the eigenvalue $ \ lambda $ to $ $ \ sqrt { \ left < ax, ax \ right > } = \ sqrt \ lambda \ sqrt { \ left < x, x \ right > }, $ $ the determinant is just the product of these eigenvalues.


short answer : yes, but you need to get permission ( and modified software ) from ont before doing that.... but that doesn't tell the whole story. this question has the potential to be very confusing, and that's through no fault of the questioner. the issue is that for the minion, sequencing ( or more specifically, generating the raw data in the form of an electrical signal trace ) is distinct and separable from base calling. many other sequencers also have distinct raw data and base - calling phases, but they're not democratised to the degree they are on the minion. the " sequencing " part of minion sequencing is carried out by ont software, namely minknow. as explained to me during porecampau 2017, when the minion is initially plugged into a computer it is missing the firmware necessary to carry out the sequencing. the most recent version of this firmware is usually downloaded at the start of a sequencing run by sending a request to ont servers. in the usual case, you can't do sequencing without being able to access those servers, and you can't do sequencing without ont knowing about it. however, ont acknowledge that there are people out there who won't have internet access when sequencing ( e. g. sequencing ebola in africa, or metagenomic sequencing in the middle of the ocean ), and an email to < support @ nanoporetech. com > with reasons is likely to result in a quick software fix to the local sequencing problem. once the raw signals are acquired, the " base - calling " part of minion sequencing can be done anywhere. the ont - maintained basecaller is albacore, and this will get the first model updates whenever the sequencing technology is changed ( which happens a lot ). albacore is a local basecaller which can be obtained from ont by browsing through their community pages ( available to anyone who has a minion ) ; ont switched to only allowing people to do basecalling locally in about april 2017, after establishing that using aws servers was just too expensive. albacore is open source and free - as - in - beer, but has a restrictive licensing agreement which limits the distribution ( and modification ) of the program. however, albacore is not the only available basecaller. ont provide a foss basecaller called nanonet. it's a little bit behind albacore on technology, but ont have said


that all useful albacore changes will eventually propagate through to nanonet. there is another non - ont basecaller that i'm aware of which uses a neural network for basecalling : deepnano. other basecallers exist, each varying distances away technology - wise, and i expect that more will appear in the future as the technology stabilises and more change - resistant computer scientists get in on the act. edit : ont has just pulled back the curtain on their basecalling software ; all the repositories that i've looked at so far ( except for the cliveome ) have been released under the mozilla public license ( free and open source, with some conditions and limitations ). included in that software repository is scrappie, which is their testing / bleeding - edge version of albacore.


in the early 90s we were looking for a method to solve the tdse fast enough to do animations in real time on a pc and came across a surprisingly simple, stable, explicit method described by pb visscher in computers in physics : " a fast explicit algorithm for the time - dependent schrodinger equation ". visscher notes that if you split the wavefunction into real and imaginary parts, $ \ psi = r + ii $, the se becomes the system : \ begin { eqnarray } \ frac { dr } { dt } & = & hi \ \ \ frac { di } { dt } & = & - hr \ \ h & = & - \ frac { 1 } { 2m } \ nabla ^ 2 + v \ end { eqnarray } if you then compute $ r $ and $ i $ at staggered times ( $ r $ at $ 0, \ delta t, 2 \ delta t,... $ and $ i $ at $ 0. 5 \ delta t, 1. 5 \ delta t,... ) $, you get the discretization : $ $ r ( t + \ frac { 1 } { 2 } \ delta t ) = r ( t - \ frac { 1 } { 2 } \ delta t ) + \ delta t hi ( t ) $ $ $ $ i ( t + \ frac { 1 } { 2 } \ delta t ) = i ( t - \ frac { 1 } { 2 } \ delta t ) - \ delta t hr ( t ) $ $ with $ $ \ nabla ^ 2 \ psi ( r, t ) = \ frac { \ psi ( r + \ delta r, t ) - 2 \ psi ( r, t ) + \ psi ( r - \ delta r, t ) } { \ delta r ^ 2 } $ $ ( standard three - point laplacian ). this is explicit, very fast to compute, and second - order accurate in $ \ delta t $. defining the probability density as $ $ p ( x, t ) = r ^ 2 ( x, t ) + i ( x, t + \ frac { 1 } { 2 } \ delta t ) i ( x, t - \ frac { 1 } { 2 } \ delta t ) $ $ at integer time steps and, $ $ p ( x, t ) = r ( x, t + \ frac {


1 } { 2 } \ delta t ) r ( x, t - \ frac { 1 } { 2 } \ delta t ) + i ^ 2 ( x, t ) $ $ at half - integer time steps makes the algorithm unitary, thus conserving probability. with enough code optimization, we were able to get very nice animations computed in real - time on 80486 machines. students could " draw " any potential, choose a total energy, and watch the time - evolution of a gaussian packet.


get someone to relax their neck as much as possible, stabilize their torso, then punch them in the head with a calibrated fist and measure the initial acceleration. apply $ \ vec f = m \ vec a $.


i haven't quite got this straight yet, but i think one way to go is to think about choosing points at random from the positive reals. this answer is going to be rather longer than it really needs to be, because i'm thinking about this in a few ( closely related ) ways, which probably aren't all necessary, and you can decide to reject the uninteresting parts and keep anything of value. very roughly, the idea is that if you " randomly " choose points from the positive reals and arrange them in increasing order, then the probability that the $ ( n + 1 ) ^ \ text { th } $ point is in a small interval $ ( t, t + dt ) $ is a product of probabilities of independent events, $ n $ factors of $ t $ for choosing $ n $ points in the interval $ [ 0, t ] $, one factor of $ e ^ { - t } $ as all the other points are in $ [ t, \ infty ) $, one factor of $ dt $ for choosing the point in $ ( t, t + dt ) $, and a denominator of $ n! $ coming from the reordering. at least, as an exercise in making a simple problem much harder, here it goes... i'll start with a bit of theory before trying to describe intuitively why the probability density $ \ dfrac { t ^ n } { n! } e ^ { - t } $ pops out. we can look at the homogeneous poisson process ( with rate parameter $ 1 $ ). one way to think of this is to take a sequence on independent exponentially distributed random variables with rate parameter $ 1 $, $ s _ 1, s _ 2, \ ldots $, and set $ t _ n = s _ 1 + \ cdots + s _ n $. as has been commented on already, $ t _ { n + 1 } $ has the probability density function $ \ dfrac { t ^ n } { n! } e ^ { - t } $. i'm going to avoid proving this immediately though, as it would just reduce to manipulating some integrals. then, the poisson process $ x ( t ) $ counts the number of times $ t _ i $ lying in the interval $ [ 0, t ] $. we can also look at poisson point processes ( aka, poisson random measures, but that wikipedia page is very