Benchmark code [Two-Stage / GS Designs]

posted by Helmut Homepage – Vienna, Austria, 2017-08-22 23:48  – Posting: # 17741
Views: 23,050

Hi ElMaestro,

I changed this part (the number of repetitions should be left to microbench).
vecCritCVs<<-rep(0,500)
 for (Nps in 6:length(vecCritCVs))
  {
   if (Nps==6) iniCV=min(0.709*GMR-0.552, 0.709/GMR -0.552)
               else iniCV=vecCritCVs[Nps-1]
    vecCritCVs[Nps]<<-FindCritCV.Sec(0.8, GMR, Nps, 1, 1e-9, iniCV)
  }
  n2=GetNps(0.5)
 return(n2)
}

Bench.H1()


I ran just 10,000 cause yours was so slow. Improved over previous versions but still 260times slower than mine. BTW, Zhang’s approximation was spot on. No iterations performed at all (to be expected with a high sample size).

Unit: microseconds
            expr   min    lq  mean  median    uq    max neval
      Bench.H1() 27847 28381 29364 28943.8 29707 139057 10000
 sampleN2.TOST()    65    75   111   111.1   143   1614 10000


» Late edit: I believe we can even do something like:
» Nps= 2* length(vecCritCVs[vecCritCVs<=CV])
» - which is faster still and does not explicitly involve a loop.

Given the results from above I didn’t try that.

Cheers,
Helmut Schütz
[image]

The quality of responses received is directly proportional to the quality of the question asked. 🚮
Science Quotes

Complete thread:

Activity
 Admin contact
20,249 posts in 4,261 threads, 1,397 registered users;
online 20 (0 registered, 20 guests [including 10 identified bots]).
Forum time (Europe/Vienna): 05:43 UTC

Many people tend to look at programming styles and languages like religions:
if you belong to one, you cannot belong to others.
But this analogy is another fallacy.    Niklaus Wirth

The Bioequivalence and Bioavailability Forum is hosted by
BEBAC Ing. Helmut Schütz
HTML5