Whileループ

Rcpp で R コードを最適化する

Romain François

Consulting Datactive, ThinkR

Whileループはシンプル

while( condition ){
    body
}
  • 継続条件
  • ループ本体
Rcpp で R コードを最適化する
// [[Rcpp::export]]
int power( int n ){    
    if( n < 0 ){
        stop( "n must be positive" )  ;
    }
    int value = 1 ;
    while( value < n ){
        value = value * 2 ;
    }
    return value ;
}

sourceCppでコンパイル後、次のように呼び出せます:

power( 1000 )
power( 17 )
1024
32
Rcpp で R コードを最適化する

ForループはWhileループ

for( init ; condition; increment ){
    body
}

は以下と同等です

init
while( condition ){
    body
    increment
}
Rcpp で R コードを最適化する

do / whileループ

do {
    body
} while( condition ) ;
Rcpp で R コードを最適化する

do / whileループの例

// [[Rcpp::export]]
int power( int n ){

    if( n < 0 ){
        stop( "n must be positive" )  ;
    }

    int value = 1 ;
    do {
        value = value * 2 ;
    } while( value < n );
    return value ;
}
Rcpp で R コードを最適化する

練習しましょう!

Rcpp で R コードを最適化する

Preparing Video For Download...