auto merge of #14090 : TeXitoi/rust/shootout-nbody-improvement, r=alexcrichton
auto merge of #14090 : TeXitoi/rust/shootout-nbody-improvement, r=alexcrichton

- minimize bound check
- factorise operations
- use x, y, z instead of [f64, ..3]
- ~1.15 faster

mahkoh/rust,zachwick/rust,pczarn/rust,aepsil0n/rust,l0kod/rust,ejjeong/rust,aturon/rust,mdinger/rust,nwin/rust,AerialX/rust-rt-minimal,kwantam/rust,GBGamer/rust,XMPPwocky/rust,jroesch/rust,zubron/rust,robertg/rust,kwantam/rust,vhbit/rust,0x73/rust,GBGamer/rust,ktossell/rust,miniupnp/rust,jroesch/rust,aidancully/rust,graydon/rust,mvdnes/rust,0x73/rust,victorvde/rust,untitaker/rust,pczarn/rust,aneeshusa/rust,dwillmer/rust,mvdnes/rust,KokaKiwi/rust,nham/rust,mihneadb/rust,servo/rust,dinfuehr/rust,erickt/rust,sae-bom/rust,untitaker/rust,vhbit/rust,nham/rust,mdinger/rust,TheNeikos/rust,nwin/rust,defuz/rust,jbclements/rust,huonw/rand,vhbit/rust,dwillmer/rust,stepancheg/rust-ide-rust,zachwick/rust,mdinger/rust,waynenilsen/rand,jbclements/rust,avdi/rust,pelmers/rust,AerialX/rust,mahkoh/rust,rohitjoshi/rust,KokaKiwi/rust,hauleth/rust,ejjeong/rust,mihneadb/rust,seanrivera/rust,ktossell/rust,gifnksm/rust,0x73/rust,omasanori/rust,krzysz00/rust,sae-bom/rust,0x73/rust,stepancheg/rust-ide-rust,pelmers/rust,graydon/rust,kwantam/rust,aneeshusa/rust,jbclements/rust,mahkoh/rust,sae-bom/rust,jroesch/rust,XMPPwocky/rust,aturon/rust,nham/rust,jashank/rust,robertg/rust,bombless/rust,quornian/rust,pczarn/rust,jroesch/rust,cllns/rust,jashank/rust,jroesch/rust,aidancully/rust,ruud-v-a/rust,P1start/rust,aidancully/rust,cllns/rust,ruud-v-a/rust,zaeleus/rust,quornian/rust,miniupnp/rust,barosl/rust,nwin/rust,l0kod/rust,aepsil0n/rust,seanrivera/rust,quornian/rust,robertg/rust,pshc/rust,untitaker/rust,andars/rust,pshc/rust,aepsil0n/rust,jroesch/rust,pshc/rust,aturon/rust,TheNeikos/rust,nham/rust,graydon/rust,erickt/rust,untitaker/rust,omasanori/rust,jashank/rust,zaeleus/rust,seanrivera/rust,nwin/rust,XMPPwocky/rust,pczarn/rust,hauleth/rust,stepancheg/rust-ide-rust,defuz/rust,andars/rust,richo/rust,gifnksm/rust,kwantam/rust,mihneadb/rust,pczarn/rust,kwantam/rust,aturon/rust,aneeshusa/rust,avdi/rust,robertg/rust,richo/rust,quornian/rust,omasanori/rust,pczarn/rust,dinfuehr/rust,KokaKiwi/rust,nham/rust,TheNeikos/rust,0x73/rust,bombless/rust,andars/rust,graydon/rust,rprichard/rust,l0kod/rust,philyoon/rust,GBGamer/rust,aneeshusa/rust,rprichard/rust,bombless/rust-docs-chinese,GBGamer/rust,miniupnp/rust,victorvde/rust,mihneadb/rust,graydon/rust,XMPPwocky/rust,carols10cents/rust,gifnksm/rust,TheNeikos/rust,KokaKiwi/rust,jroesch/rust,nham/rust,sae-bom/rust,jashank/rust,krzysz00/rust,jbclements/rust,GBGamer/rust,ebfull/rust,omasanori/rust,mvdnes/rust,kimroen/rust,l0kod/rust,seanrivera/rust,ejjeong/rust,pshc/rust,dwillmer/rust,vhbit/rust,reem/rust,mdinger/rust,kimroen/rust,kimroen/rust,jbclements/rust,ruud-v-a/rust,dinfuehr/rust,barosl/rust,rprichard/rust,zachwick/rust,carols10cents/rust,GBGamer/rust,XMPPwocky/rust,kimroen/rust,seanrivera/rust,ebfull/rust,zubron/rust,AerialX/rust,emk/rust,gifnksm/rust,jashank/rust,quornian/rust,vhbit/rust,achanda/rand,hauleth/rust,erickt/rust,ktossell/rust,defuz/rust,nwin/rust,emk/rust,emk/rust,aepsil0n/rust,l0kod/rust,andars/rust,rohitjoshi/rust,GBGamer/rust,miniupnp/rust,carols10cents/rust,erickt/rust,AerialX/rust,jashank/rust,carols10cents/rust,emk/rust,cllns/rust,victorvde/rust,reem/rust,philyoon/rust,cllns/rust,stepancheg/rust-ide-rust,stepancheg/rust-ide-rust,shepmaster/rand,zaeleus/rust,AerialX/rust,robertg/rust,krzysz00/rust,AerialX/rust-rt-minimal,servo/rust,ktossell/rust,mvdnes/rust,vhbit/rust,ebfull/rust,zachwick/rust,ruud-v-a/rust,avdi/rust,aturon/rust,emk/rust,gifnksm/rust,aturon/rust,miniupnp/rust,sae-bom/rust,aidancully/rust,pshc/rust,rprichard/rust,richo/rust,zubron/rust,miniupnp/rust,dwillmer/rust,krzysz00/rust,ebfull/rust,nham/rust,vhbit/rust,ruud-v-a/rust,avdi/rust,cllns/rust,mdinger/rust,ktossell/rust,barosl/rust,philyoon/rust,GBGamer/rust,l0kod/rust,TheNeikos/rust,untitaker/rust,aneeshusa/rust,carols10cents/rust,untitaker/rust,l0kod/rust,jbclements/rust,aepsil0n/rust,emk/rust,aneeshusa/rust,nwin/rust,AerialX/rust-rt-minimal,philyoon/rust,dwillmer/rust,0x73/rust,ejjeong/rust,mihneadb/rust,defuz/rust,retep998/rand,ktossell/rust,pelmers/rust,pelmers/rust,richo/rust,zaeleus/rust,philyoon/rust,servo/rust,aidancully/rust,mahkoh/rust,zaeleus/rust,zachwick/rust,dwillmer/rust,jbclements/rust,hauleth/rust,dinfuehr/rust,erickt/rust,defuz/rust,barosl/rust,nwin/rust,AerialX/rust-rt-minimal,zubron/rust,richo/rust,jbclements/rust,mdinger/rust,XMPPwocky/rust,victorvde/rust,reem/rust,GrahamDennis/rand,servo/rust,servo/rust,P1start/rust,sae-bom/rust,seanrivera/rust,bombless/rust,rohitjoshi/rust,jashank/rust,ruud-v-a/rust,bhickey/rand,mvdnes/rust,cllns/rust,aturon/rust,rohitjoshi/rust,bombless/rust,andars/rust,omasanori/rust,pelmers/rust,krzysz00/rust,kwantam/rust,kimroen/rust,dinfuehr/rust,kimroen/rust,dwillmer/rust,robertg/rust,zubron/rust,graydon/rust,bombless/rust,ebfull/rand,KokaKiwi/rust,hauleth/rust,rohitjoshi/rust,barosl/rust,pczarn/rust,krzysz00/rust,jashank/rust,victorvde/rust,aidancully/rust,P1start/rust,rprichard/rust,andars/rust,rprichard/rust,victorvde/rust,P1start/rust,l0kod/rust,pshc/rust,P1start/rust,hauleth/rust,servo/rust,TheNeikos/rust,mvdnes/rust,stepancheg/rust-ide-rust,defuz/rust,miniupnp/rust,carols10cents/rust,omasanori/rust,AerialX/rust,aepsil0n/rust,dwillmer/rust,bluss/rand,barosl/rust,quornian/rust,emk/rust,quornian/rust,jroesch/rust,zachwick/rust,reem/rust,zubron/rust,erickt/rust,AerialX/rust-rt-minimal,0x73/rust,richo/rust,erickt/rust,ebfull/rust,jbclements/rust,philyoon/rust,AerialX/rust,zubron/rust,dinfuehr/rust,ejjeong/rust,pelmers/rust,reem/rust,avdi/rust,pshc/rust,mahkoh/rust,ebfull/rust,ejjeong/rust,bombless/rust,AerialX/rust-rt-minimal,ktossell/rust,stepancheg/rust-ide-rust,mahkoh/rust,kimroen/rust,rohitjoshi/rust,avdi/rust,barosl/rust,KokaKiwi/rust,zubron/rust,nwin/rust,gifnksm/rust,zaeleus/rust,vhbit/rust,P1start/rust,pshc/rust,miniupnp/rust,mihneadb/rust,reem/rust,servo/rust,arthurprs/rand,P1start/rust