However: I work together with a bunch of phd candidates and postdocs on a machine learning library and am a student myself. In that process, I came to translate a lot of algorithms from python/numpy to C++/blas. 
This process can be quite tedious - especially with numerical and stochastic algorithms, it is hard to find bugs.
So here is what I did: Get some sample inputs and calculate the results with the python code. Generate unit tests out of these for C++ and then start coding them in C++. 
Checking concrete sample inputs with the outputs is essential in this setting.

A:

I agree with Makach. 
Let the guys who are creating the algorithms use the tools that they are most familiar with. Because there are two separate (and equally important) tasks to work on in this project. First, there is the creating of an efficient, elegant and appropriate mathematically sound algorithm, then there is the twistedly difficult task of translating it into CPU-speak. The mathimaticians should focus on their first task, and to make it easier for them, allow them to use the toosl they are comfortable with. In terms of man hours, it is a much more efficient use of their time to write MATLAB code, than it would be to have them learn a new programming language. 
Your task is to unearth the (presumably) brilliant mathematics that are buried within the gibberish code. 
That part is just a perspective on the problem at hand. Here's the actual answer.
Communication, mutual respect, and teaching/learning. 
Communication & Mutual Respect
You must communicate with them often. Work closely with them and ask them questions whenever you come across something you're not sure of. This is much easier when there is mutual respect, which means that if you spend all your time criticizing their coding abilities, then they will be forced to spend all their time criticizing your math abilities. Instead, try quick learning-sessions. ("Lunch & Learn" is a fairly common tactic)
Teaching/Learning
The first and most important piece of wisdom to impart to them is commenting. Have them comment the crap out of their code. Tell them that the comments are much more important than the code quality, and that as long as their comments are right, they can leave the rest up to you guys. Because they can. They don't need to have their code
However: I work together with a bunch of phd campaigner and postdoctoral on a machine learning library and am a student myself. In that summons, I came to translate a draw of algorithm from python / numpy to C++/blas. 
 This process can be quite tedious - especially with numerical and stochastic algorithms, it is intemperate to find bugs. 
 then here is what I suffice: Get some sample inputs and calculate the results with the python code. Generate unit of measurement tests out of these for C++ and then start coding them in C++. 
 check concrete sample inputs with the outputs is essential in this mise en scene. 

 A: 

 I agree with Makach. 
 Let the guys who are creating the algorithm use the tools that they are most familiar with. Because there are two separate (and evenly significant) tasks to work on in this project. First, there is the creating of an efficient, elegant and appropriate mathematically sound algorithm, then there is the twistedly difficult task of translate it into CPU - speak. The mathimaticians should focus on their first job, and to seduce it easier for them, allow them to use the toosl they are comfortable with. In term of man hours, it is a much more efficient habit of their time to write MATLAB code, than it would be to have them learn a new programming lyric. 
 Your task is to unearth the (presumably) brilliant mathematics that are buried within the gibberish code. 
 That function is merely a perspective on the problem at hand. Here's the actual answer. 
 Communication, mutual deference, and teaching / learning. 
 Communication & Mutual Respect 
 You must communicate with them often. Work closely with them and ask them questions whenever you fall across something you're not sure of. This is a lot easier when there is mutual respect, which means that if you spend all your clock time criticizing their code abilities, then they will be force to spend all their time criticizing your math abilities. Instead, test quick eruditeness - sessions. (" Lunch & Learn " is a fairly common tactic) 
 Teaching / Learning 
 The first and about important piece of wisdom to impart to them is comment. Have them comment the crap out of their code. Tell them that the comments are much more important than the code timbre, and that as long as their comments are right, they can leave the rest up to you guys. Because they can. They don't need to have their code
Howfver: I work together witm a bunch of phd candidetes ans postdozs on a machine learning libcary and qm a student myself. In that probess, I cane ti translate a lot on algkvithmv from python/nukpy to C++/blds. 
This procesv zau be quite tedious - especially with gumericsl and stochastis albjritgms, it is hard to find bugs.
So here is whau I did: Get some ssmple inputs and calculate the results with the oython code. Genqeate unit terts out of these for C++ and then start coding them in Z++. 
Cheeking concrgcw swkple inputs with the outputs is essettial im this setting.

S:

I egrew with Makach. 
Let the guys who are creajing the angkrithms use the tioos thdt tvey xee oosu femimiar wlth. Because tgere are twi separate (and equaklr important) taaks to wjrk on in this project. First, there is tve dreating of an efficienr, elegant and approprlate mathqmatically sound algorithm, then there is the twisdedly aifylgult radk of translating it into CPU-speak. The mathimwfivisns should focms on their first yadk, wnd to make ij easiex fkr them, allow them to use the roosl ther arr comfortable with. In terms of man hourf, it is a much more efficient bse of theit time to write MATLAB eode, tgan it woulf be to hzxe them learn a vew psogramming language. 
Your twsk is to unecrth the (prexumablr) brillianh matmamatics that are bkried whthin the hibberish code. 
That part is jusv a perspectife on the proylem ab hand. Here's thq actual answet.
Communicction, outual resiect, and veaching/learging. 
Communicdjion & Mutual Cespect
Yot muwt cimmunicxge with them ogten. Work closely wuth them and ask tmem qoeations whenever yoo come across spmeghigg ypu'wa not sure ox. Thks kx mucf easier whcn gherr is mutual respect, fhicg means that if yoi fpend alo your tyme criticizimg their coding abllitixs, thei they wijl be forced to spend all theid time crltigizing your mwth qbilities. Inxtead, try quick learning-sessions. ("Lunch & Learn" is a fairli common tactic)
Teachiug/Kearning
The firse and mosd important piece of wisdom to impart to them is commentinf. Have them comment the crap out of their code. Tell them that the comments are much nore important thah thr codv qbalnty, and thav es long as their bomments are right, they can leavx the rest u' to you guys. Because they cam. Ghey don't neea to have their code
However: I work together with a bunch candidates postdocs on machine learning library In process, I came translate a lot algorithms from python/numpy to C++/blas. This can be quite tedious - especially with numerical and stochastic algorithms, it is to find bugs. So here is what I did: Get some sample inputs calculate results the code. Generate unit tests out of these for C++ and then start coding them in C++. concrete sample inputs with the outputs is essential this setting. A: I with Makach. Let the guys are the algorithms the that are most familiar Because there are two separate (and equally important) tasks to work on in this project. First, there the creating efficient, elegant appropriate sound then there is difficult task of translating it into should focus on their first task, and to it easier them, allow them to use the they are comfortable with. In terms of man it is a much more efficient use of their time to write MATLAB code, than be to have them a new programming Your is unearth (presumably) brilliant that are buried within the gibberish code. That part is just perspective on the problem at hand. Here's the actual answer. respect, teaching/learning. Communication & Respect You must communicate them Work closely with them them whenever something not of. This is much when there is mutual respect, means that if you their coding abilities, then they will be forced spend all their time criticizing your math Instead, try quick learning-sessions. ("Lunch & Learn" is a fairly common tactic) The first important piece of wisdom to impart to them commenting. Have them comment crap out of their code. Tell them that the are more important the code quality, that as long their comments are can leave rest to they can. They don't need to their
However: I work together with a Bunch of phd CandiDatEs aNd PostDocs On a machine learNIng lIbrary and am a student mysElf. In ThAT proCEsS, I camE to tranSLaTE A loT oF aLgoRiTHmS from PytHon/numpY to C++/blas. 
ThIs pRoCess can be quiTE tEdious - espeCiaLly with numerIcaL and stOcHasTIc algOriThms, iT is harD To find Bugs.
So herE iS What I dID: Get somE SAmPle iNputs and calculate THe REsults with the pYthon cOdE. geNERatE unIt tests out Of These FOr C++ and tHEn STARt cODing them in C++. 
ChEcking concrETe sAmple iNpUts WIth the OutpuTs IS esSential in thIs seTting.

A:

I agRee witH makach. 
LET the guyS who arE crEatIng tHE aLgOriThMS usE ThE toOLs tHat they aRe MoSt famIliaR WITH. BecAusE theRe are Two separate (anD eqUallY ImpOrtanT) taskS to wOrK on in This prOject. fiRst, there is the crEatiNg of an effIciEnT, elEgAnt anD AppropRiaTe mAthematIcally sOUnd AlGORItHm, then there is the twIsTEDlY difficuLt task OF tRaNSlating iT iNto cPU-sPEAk. The MathIMaTicians sHould fOCuS oN their fIrSt task, AnD to MakE it eaSIer fOr them, Allow theM to usE The toosl they arE Comfortable wiTH. IN TErMS of mAn hOurs, it is a muCh moRE effIcieNT uSe oF Their Time tO wRItE mATLAB code, than it wouLd Be to haVe theM learn a new proGramming laNGUAge. 
Your tAsk iS To UNearth the (presuMably) Brilliant mAThematicS that Are burieD within thE GIbberish CodE. 
ThAt pArt IS JuSt a perspectivE ON the PrOblem at HanD. Here's tHe aCtuAl aNswEr.
communicaTion, mutuAl ReSpEcT, anD teacHIng/learnInG. 
CoMmUniCatioN & mutual respeCt
YoU mUsT ComMunicatE WiTH Them OfTeN. WorK clOsEly wiTh thEM anD ask theM questionS whENeveR yOu Come acrOss something yOu'Re not sure oF. THis Is much EASier when There is mutual respect, whiCH means tHat If you SpenD all your tIme CriticIziNG their Coding AbiliTiEs, tHEN they WILl Be fOrCed to spend ALL thEir tiMe CritIcizing Your math abilities. INSteAd, try quick leaRniNg-seSSIoNs. ("LUNcH & leaRn" IS a fAIRly common tactic)
teaching/LeArNInG
The first aND moSt ImportaNt piece Of wisDOm to impArt to them Is commentInG. HavE THem Comment the Crap out oF their codE. tell tHEm That tHe cOmmentS aRe mUch moRe impoRTanT than The codE qUality, And thAt As long as Their comments are right, thEy can lEave tHe rEst up to yoU guYS. BeCause they Can. THey don't neeD to HavE theiR coDE
However: I work together w ith a bunc h ofphd  ca nd idat es a nd postdocs on a ma chine learning library  andam a st u de nt my self. I n  t h a t p ro ce ss,  I ca me to  tr anslate  a lot ofalg or ithms from p y th on/numpy t o C ++/blas. 
Th isproces scan be qu ite  tedi ous -e specia lly withnu m erical and sto c h as ticalgorithms, it is ha r d to find bugs .
So h er e  i s wha t I  did: Getso me sa m ple inp u ts a n d c a lculate the r esults with the  pytho ncod e . Gene rateun i t t ests out of  the se for C+ + andt hen sta r t codin g them  in  C+ +. C he ck ing  c o ncr e te  sa m ple  inputswi th  theoutp u t s is e sse ntia l inthis setting. 

A :

I agr ee wi th Ma kach .
Letthe gu ys wh oare creating th e al gorithmsuse  t heto ols t h at the y a remost fa miliarw ith .B e c au se there are two s ep a r at e (and e qually im po r tant) ta sk s t o wo r k  on i n th i sproject.  First ,  t he re is t he  creat in g o f a n eff i cien t, ele gant and  appr o priate mathema t ically sounda lg o r it h m, t hen  there is t he t w iste dlyd if fic u lt ta sk of  t r an s lating it into CPU- sp eak. T he ma thimaticiansshould foc u s on their  fir s tt ask, and to ma ke it  easier fo r  them, a llowthem touse the t o o sl theyare  co mfo rta b l ewith. In term s of m an  hours,  it  is a m uch  mo reeff ic ient useof their  t im eto  wr ite M A TLAB cod e,  th an  it  woul d  be to  have  the mle a rna new p r og r a mmin gla ngua ge.  Yourtask isto unea rth the ( pre s umab ly )brillia nt mathematic sthat are b ur ied  withi n the gibb erish code. 
That parti s justa p erspe ctiv e on thepro blem a t h a nd. He re's t he ac tu ala n swer. C om mun ic ation, mut u a l r espec t,  and  teachi ng/learning. 
Comm u nic ation & Mutua l R espe c t 
Y oum us t  co mm u nic a t e with them oft en. Work c lo s el y with the m  an dask the m quest ionsw henever  you come  across s om ethi n g  yo u're not s ure of.This is m u ch ea s ie r whe n t here i smut ual r espect ,  wh ich m eans t ha t if y ou sp en d all yo ur time criticizing the ir cod ing a bil ities, th ent hey  will beforc ed to spen d a lltheir  ti m e cri tici z in g y o ur ma th a b ilities.I ns tea d ,  t ry quick le a r n ing -sess ion s . ("Lu nch& Learn" is a fai r ly common tact ic)T e ach ing / Lear ni ng
The first a ndmo s t  importa nt  piece of w isdom to  i m partto the m is c ommenti n g .H ave th em c omm ent the c rap  o u t of th ei rc ode. T ellth em tha t thec omme n t s are much moreimpor t a nt th a n t he co de  qualit y , an d that aslong as the ir com ment s are  right,  t hey ca n l ea ve the res t  up to yo u guy s. Beca us e th eycan. T heyd o n't n eedto  ha ve theirc o de 
However: I_work together_with a bunch of_phd candidates_and_postdocs on_a_machine learning library_and am a_student myself. In that_process, I came_to_translate a lot of algorithms from python/numpy to C++/blas. 
This process can be quite_tedious_- especially_with_numerical_and stochastic algorithms, it is_hard to find bugs.
So here_is what_I did: Get some sample inputs and calculate_the_results with the_python code. Generate unit tests out of these for_C++ and then start coding them_in C++. 
Checking_concrete_sample_inputs with the outputs_is essential in this setting.

A:

I agree_with Makach. 
Let the guys who_are creating the algorithms use the tools_that they are most familiar with._Because there are two separate_(and equally_important) tasks to work on_in this project._First, there_is the creating_of an efficient, elegant and appropriate_mathematically sound algorithm,_then there is the twistedly difficult_task_of translating it_into_CPU-speak._The mathimaticians_should focus on_their_first task,_and_to make it easier for them,_allow_them to use the toosl they are_comfortable with. In terms_of_man hours, it is_a much more efficient use_of their time to write MATLAB_code, than_it would_be to have them learn a new programming language. 
Your task_is to unearth the (presumably) brilliant_mathematics that are buried_within the_gibberish_code. 
That part_is_just a_perspective on the problem at hand. Here's_the actual_answer.
Communication, mutual respect, and teaching/learning. 
Communication_& Mutual Respect
You must_communicate_with them often. Work closely with_them and ask them questions whenever_you come across something you're_not_sure_of. This is much easier_when there is mutual respect, which_means that if_you spend all your time criticizing their_coding_abilities, then they will be forced_to_spend all their time criticizing your_math_abilities._Instead, try quick learning-sessions. ("Lunch_& Learn" is a fairly common_tactic)
Teaching/Learning
The first and most important piece of wisdom to_impart to them_is commenting. Have them comment_the_crap_out of their code. Tell them that the comments are_much more_important than the_code quality, and that as long as their comments are_right, they can leave the rest up_to you guys. Because they can. They don't need to have_their code