dir /home/moumou/tmp/newtcltcc-0.9.25
can't create procedure "::tcc::Log": unknown namespace
    while executing
"proc ::tcc::Log {args} {
    # puts $args
}"
    (file "/home/moumou/tmp/newtcltcc-0.9.25/tcc.tcl" line 76)
    invoked from within
"source /home/moumou/tmp/newtcltcc-0.9.25/tcc.tcl"
    (in namespace eval "::request" script line 4)
    invoked from within
"namespace eval ::request $script"
    ("::try" body line 12)

OUTPUT BUFFER:

#!/usr/local/bin/tclsh #package require tcc source /home/moumou/tmp/newtcltcc-0.9.25/tcc.tcl source tcc2.tcl proc Data {{nseq 20} {lens 100}} { set ll [list A C D E F G H I K L M N P Q R S T V W Y . . . . . . . . . . . . . . . . . . . . .] for {set n 0} {$n < $nseq} {incr n} { set seq "" for {set i 0} {$i < $lens} {incr i} { append seq [lindex $ll [expr {round(40*rand())}]] } lappend Lseq $seq lappend Lnom "S$n" } return [list $Lnom $Lseq] } proc CreePiliers {Ls} { set l [string length [lindex $Ls 0]] for {set i 0} {$i < $l} {incr i} { set p "" foreach s $Ls { append p [string index $s $i] } lappend Lp $p } return $Lp } set seq "slkdjfsldkjf" set L [list "slkdfj" "slkdfjsdjflskdjf"] tcc::cproc C_Nri {Tcl_Obj* os1 Tcl_Obj* os2} double { char *s1, *s2; int l1,l2,l,i,n; double r; s1 = Tcl_GetStringFromObj(os1,&l); s2 = Tcl_GetString(os2); l1 = l2 = n = 0; for (i=0;il2?l1:l2); return r; } proc T_NRIdentite {a lga b lgb} { foreach ca $a cb $b { incr p [expr {$ca ne "." && $ca eq $cb}] } return [expr {$lga>$lgb?$p*1.0/$lga:$p*1.0/$lgb}] } proc T_pci {Ln Ls} { global PCT foreach s $Ls { lappend Ll [string length [string map [list "." ""] $s]] lappend Ns [split $s ""] } set Ls $Ns set i 1 foreach s1 [lrange $Ls 0 end-1] n1 [lrange $Ln 0 end-1] l1 [lrange $Ll 0 end-1] { set PCT($n1,$n1) 1.0 foreach s2 [lrange $Ls $i end] n2 [lrange $Ln $i end] l2 [lrange $Ll $i end] { set pc [T_NRIdentite $s1 $l1 $s2 $l2] set PCT($n1,$n2) $pc set PCT($n2,$n1) $pc } incr i } return } proc C_pci {Ln Ls} { global PCC set i 1 foreach s1 [lrange $Ls 0 end-1] n1 [lrange $Ln 0 end-1] { set PCC($n1,$n1) 1.0 foreach s2 [lrange $Ls $i end] n2 [lrange $Ln $i end] { set pc [C_Nri $s1 $s2] set PCC($n1,$n2) $pc set PCC($n2,$n1) $pc } incr i } return } lassign [Data 300 2000] Lnom Lseq puts "T_pci : [time {T_pci $Lnom $Lseq}]" puts "C_pci : [time {C_pci $Lnom $Lseq}]" foreach e1 [lsort [array names PCT]] e2 [lsort [array names PCC]] { if {$e1 ne $e2} { puts "===> $e1 $e2" } if {abs($PCT($e1) - $PCC($e2)) > 1.0e-5} { puts "===> diff de val" } puts [format "T %s %6.4f | C %s %6.4f" $e1 $PCT($e1) $e2 $PCC($e2)] } exit set Lpil [CreePiliers $Lseq] set n [ctest $seq] puts "n= $n" #doboot2 $Lseq exit tcc::cproc doboot {char **seq} int { int i,j; i=strlen(seq[0]); return i; /* printf('%d',i); for (j=0;j<10;j++) { printf('%s',seq[0][j]); } return; */ } tcc::cproc doboot2 {Tcl_Obj* lseq} int { int n; Tcl_Obj *resultPtr; char *seq1, *seq2; int l1,l2, l; int r; int i,j; int nbseqs; Tcl_Obj *matrix; Tcl_Obj *row; double ratio; int pobjc; Tcl_Obj **pobjv; if (Tcl_ListObjGetElements(interp,lseq,&pobjc,&pobjv)!=TCL_OK) { return TCL_ERROR; } nbseqs=pobjc; printf('nseqs %d',nbseqs); matrix = Tcl_NewListObj(0,NULL); for (i=0;i