mengenai dunia penelitian di (LIPI) Indonesia

Tempo hari saya mengobrol dengan abang saya mengenai pembelian microscope slide micrometer calibration untuk kepentingan penelitian
 di LIPI menggunakan uang pribadi abang saya. Saya lantas mempertanyakan, "kenapa untuk penelitian
 kepentingan kantor harus mengeluarkan uang pribadi?".

Sebelum berceloteh lebih jauh, sepertinya perlu saya tuliskan disclaimer terlebih dahulu.
1. Saya paham dunia penelitian di indonesia memang unik.
2. Saya juga paham tidak semua kegiatan penelitian kantor harus menggunakan uang pribadi.
3. Hal yang sama (saya harap) tidak dialami oleh seluruh peneliti di Indonesia.

Cerita ini dimulai dari abang saya yang meminta tolong untuk dibelikan microscope slide micrometer calibration di ebay, dikirimkan ke alamat saya di Jepang dan ketika saya pulang ke Indonesia bisa saya berikan kepada abang saya. Abang saya minta tolong karena lebih banyak rintangan jika beli barang melalui ebay dan dikirimkan ke Indonesia. Misalnya, ditahan oleh beacukai, ataupun oleh kantor pos. Kebetulan jika beli slide yang diminta tolong itu, waktu yang dibutuhkan untuk sampai ke Jepang dan tanggal kepulangan saya ke Indonesia, sangat mepet. Ada kemungkinan saya pulang tapi slide belum sampai ke alamat saya.

Saya coba untuk mencarikan slide yang mirip di Jepang. Tapi ternyata harganya berbeda jauh, produk Jepang jauh lebih mahal dari produk yang ada di ebay itu. Lalu saya tawarkan untuk beli produk Jepang ke abang saya, tapi ternyata abang saya tidak jadi beli. Dia bilang, terlalu mahal, karena dia mau beli pakai uang pribadi. Disitu saya mempertanyakan, kenapa untuk beli alat penelitian kepentingan kantor harus mengeluarkan uang pribadi?. Ketika mengobrol di kesempatan lain dengan abang saya, banyak rintangan yang ada di LIPI. Contoh lainya, di ruangan abang saya ada komputer, tapi sudah uzur, lamban sekali. Lagi-lagi abang saya berencana untuk beli komputer menggunakan uang pribadi. Sebagai seorang peneliti juga, saya merasa agak kaget. Sekarang tahun 2017, komputer merupakan salah satu alat paling krusial bagi peneliti masa kini. Hal paling sederhana, kita harus menulis paper ataupun patent, atau produk penelitian lainya di komputer. Hal lain, komputer juga adalah alat yang sangat diandalkan untuk menganalisa data, membuat simulasi dan lain lain. Dengan ke tidak tersediaan alat paling krusial, bagaimana peneliti  bisa penelitian dengan maksimal?

Contoh rintangan lainya, koneksi internet yang sangat lamban. Jaman sekarang pun internet sangat dibutuhkan untuk para peneliti. Sebut saja pencarian referensi literatur untuk penelitian, data, informasi dan lain lain. Sama dengan komputer, bagaimana peneliti  bisa penelitian dengan maksimal?

Salah satu contoh lain adalah telpon yang hanya bisa dipakai untuk antar ruangan. Telpon yang bisa terhubung dengan dunia luar lipi ada salah satunya di ruangan sekertaris. Lagi-lagi saya mempertanyakan, kenapa cuma ada di ruang sekertaris? Saya rasa peneliti pun sangat butuh telpon, untuk komunikasi dengan pihak luar LIPI misalnya. Apa semua harus dengan email, atau harus ke ruangan sekertaris. Memang itu salah satu tindakan preventif supaya tidak disalah gunakan. Tapi jika ini alasanya, terlalu berlebihan. Juga kalau begitu kenapa tidak menggunakan IP phone? Meskipun disalah gunakan, biayanya murah sekali jika menggunakan IP phone. Bahkan kantor sebelah LIPI yang sama sama lembaga pemerintan, BKPM, sudah sejak lama pakai IP Phone. Untungnya abang saya tidak berfikir untuk beli IP phone sendiri.

Dengan titel lembaga penelitian terbesar di Indonesia, lumrah jika banyak orang yang berfikir, LIPI adalah tempat dengan banyak teknologi terbaru. Saya salah satu yang berfikir seperti itu juga. Ternyata tidak demikian adanya. Bukanya saya ingin menjelek-jelekan nama LIPI. Tapi, bagaimana bisa lembaga penelitian terbesar di Indonesia sekelas LIPI ternyata seperti itu. Saya pun mempertanyakan, bagaimana dunia penelitian di Indonesia mau maju pesat jika lembaga sekaliber LIPI ternyata seperti itu. Bukankah LIPI seharusnya yang menjadi pionir penelitian di Indonesia?

Sebagai sesama peneliti juga saya selalu dididik untuk tidak menggunakan uang pribadi untuk urusan kerjaan kantor. Makanya, saya merasa ada yang unik dari kasus mengenai LIPI ini. Sejak kuliah, professor saya mendidik saya untuk sebisa mungkin tidak menggunakan dana pribadi untuk kepentingan penelitian kampus. Setelah bekerja sebagai peneliti di perusahaan swasta pun kantor saya melarang untuk menggunakan dana pribadi untuk kepentingan penelitian kantor. Kantor saya jauh dari kantor yang sempurna, beberapa kali terkena kasus dan sampai sekarang banyak yang bilang bahwa kantor saya termasuk "Black Company" karena beberapa kali diangkat media soal kasus bunuh diri karyawan karena stress masalah kerjaan ataupun kasus karyawan yang depresi dan harus dirawat dirumah sakit ataupun oleh psikolog. Kantor saya juga bahkan terkesan agak pelit untuk urusan keuangan. Tapi kantor saya mengerti esensi penelitian, penelitian adalah sebuah investasi yang sangat penting untuk menghasilkan produk inovatif berkualitas tinggi. Produk dari hasil investasi itu lah yang akan dijual untuk menghasilkan keuntungan bagi perusahaan yang pada ahirnya akan menggerakan perekonomian kantor.

Begitu pula dengan negara-negara maju. Saya ambil Contoh Jepang, karena kebetulan saya kuliah, hidup dan tinggal di Jepang. Saat ini jepang menganggarkan dana riset sebesar 3.6% dari PDB sementara Indonesia 0.2%. Oke memang banyak yang berfikir, Jepang negara maju, punya uang cukup untuk penelitian. Tapi, kita lihat sejarahnya, tahun 1945 Jepang hancur berantakan kalah PD 2. 2 kota besarnya di bom. Uang banyak terpakai untuk perang, kesengsaraan, kemiskinan, kekurangan gizi, banyak yang meninggal dipinggir jalan. Di saat kritis ini pemerintah Jepang, universitas, perusahaan swasta tetap berusaha menggalakkan penelitian dan pendidikan karena mereka sadar bahwa penelitian adalah salah satu investasi paling penting. Hasilnya, banyak sekali universitas, lembaga riset, perusahaan swasta di Jepang memiliki tingkat kredibilitas yang tinggi dalam bidang penelitian, ilmu pengetahuan dan teknologi. Tidak lupa mengenai tingkat ekonomi Jepang saat ini, GDP Jepang mencapai 39.000 USD.

Salah satu contoh lain adalah Jerman. Saya belum pernah merasakan tinggal di Jerman, tapi saya sedikit banyak bisa baca data. Jerman pun sama, kalah PD 2, kondisi jerman tidak jauh dari Jepang. Tapi sekarang bahkan GDP Jerman berada diatas Jepang, yakni 42.000 USD. Sama seperti Jepang, banyak sekali universitas, lembaga riset, perusahaan swasta di Jerman yang memiliki tingkat kredibilitas yang sangat tinggi. Semua itu bisa dicapai karena Jepang dan Jerman memiliki kesamaan. Lagi-lagi, menggalakan penelitian dan pendidikan. Masih banyak sekali contoh yang bisa saya tuliskan disini, tapi ilustrasi kantor saya dan 2 negara maju yang dulu kalah PD 2, hancur lebur berantakan itu saya rasa sudah cukup mewaliki apa yang mau saya utarakan dalam tulisan ini. Dari beberapa contoh yang saya utarakan, dapat disimpulkan bahwa riset dan pendidikan merupakan investasi yang sangat menguntungkan untuk masa depan, baik untuk perekonomian ataupun untuk dunia pendidikan
suatu negara ataupun organisasi. 

Memang banyak faktor yang jadi alasan LIPI seperti itu, misalnya seperti yang ada di press release LIPI sendiri . Pemerintah pusat punya andil besar juga dalam hal ini. Saya juga sedikit paham bahwa dana suatu lembaga pemerintah ditentukan oleh DPR, MPR dan pemerintah pusat. Sudah bukan rahasia lagi bahwa cara lembaga pemerintah untuk mendapatkan dana yang lebih banyak adalah dengan melobi DPR, MPR dan pemerintah pusat. Saya hanya bisa menduga, ada kemungkinan bahwa pejabat LIPI belum berhasil melobi DPR, MPR dan pemerintah pusat untuk mendapatkan dana yang lebih banyak, bahkan sampai dipangkas. Saya yakin LIPI sudah dan sedang berusaha untuk menaikan dana untuk LIPI.
Semoga petinggi LIPI bisa melobi DPR, MPR dan pemerintah pusat agar dana untuk LIPI lebih banyak. Yang tidak ketinggalan, semoga DPR, MPR dan pemerintah pusat juga pemerintah pusat mau berfikir dan mengerti seperti perusahaan swasta atau negara maju lainya, bahwa penelitian adalah salah satu investasi yang sangat penting untuk menggerakan ekonomi Indonesia.

Lewat tulisan ini juga saya ingin mengapresiasi abang saya. Respect untuk abang saya. Abang saya tetap berusaha bekerja melakukan penelitian yang notabene pekerjaan kantor meskipun menggunakan uang pribadinya. Kalau saya yang berada dalam posisi itu, mungkin saya sudah "tidak sreg" dan mengundurkan diri untuk mencari pekerjaan yang lebih baik.

Itami, 12 Desember 2017

TKI di Jepang, 
 
Ramadhona Saville, PhD.

1. playing with string manipulation, 2. function to sort dynamically alocated string array in visual c++

 #include "stdafx.h"  
 #include <string.h>     //header for string manipulation  
 #include <cstdlib>     //header for malloc  
   
 #define COL 300  
 bool sortStr(char(*str)[COL], int n)  
 {     //function to sort string array   
      if( str == NULL )     return false;  
      char tmp[COL];  
      for(int i=0; i<n-1; ++i)  
      {  
           for(int j=i+1; j<n; ++j)  
           {  
                if( strcmp(str[i], str[j]) > 0 )  
                {                      
                     strcpy_s(tmp, str[i]);  
                     strcpy_s(str[i], str[j]);  
                     strcpy_s(str[j], tmp);  
                }  
           }  
      }  
      return true;  
 }  
 int _tmain(int argc, _TCHAR* argv[])  
 {  
      int ncp = 4;                     //for string array  
      //dynamic allocation of string array
      char(*str0)[COL] = (char(*)[COL])malloc(sizeof(char)*ncp*COL);  
   
      int id0 = 9, id1 = 12;       
      strcpy_s(str0[0], "s");          //input your string  
      strcpy_s(str0[1], "e");  
      char tmp[COL];  
      sprintf_s(tmp, "%d", id1);      //input int value (id1) into string tmp  
      strcat_s(str0[0], tmp);         //concatenate multiple strings into str[0]  
      sprintf_s(tmp, "%d", id0);  
      strcat_s(str0[1], tmp);  
      strcpy_s(str0[2], "e1");  
      strcpy_s(str0[3], "s2");       
      for(int i=0; i<ncp; ++i)  
           printf("str0[%d]:%s\n", i, str0[i]);  
      printf("--\n");  
             
      char(*str1)[COL] = (char(*)[COL])malloc(sizeof(char)*ncp*COL);  
      strcpy_s(str1[0], "e9");  
      strcpy_s(str1[1], "s12");  
      strcpy_s(str1[2], "e1");  
      strcpy_s(str1[3], "s3");  
   
      for(int i=0; i<ncp; ++i)  
           printf("str1[%d]:%s\n", i, str1[i]);  
   
      printf("\n=======compare=======\n");  
      printf("====before sorting===\n");  
      for(int i=0; i<ncp; ++i)  
      {  
           int res = strcmp(str0[i], str1[i]);     //compare 2 strings value based on ASCII  
           printf("str[%d]: %d\n", i, res);  
      }  
   
      printf("\n=======sort=======\n");  
        
      if( sortStr(str0, ncp) == true )  
      {  
           for(int i=0; i<ncp; ++i)  
                printf("str0[%d]:%s\n", i, str0[i]);  
      }  
             
      printf("--\n");  
        
      if( sortStr(str1, ncp) == true )  
      {  
           for(int i=0; i<ncp; ++i)  
                printf("str0[%d]:%s\n", i, str1[i]);  
      }       
   
      printf("\n=======compare=======\n");  
      printf("====after sorting====\n");  
      for(int i=0; i<ncp; ++i)  
      {  
           int res = strcmp(str0[i], str1[i]);  
           printf("str[%d]: %d\n", i, res);  
      }  
 } 
result
 
str0[0]:s12
str0[1]:e9
str0[2]:e1
str0[3]:s2
--
str1[0]:e9
str1[1]:s12
str1[2]:e1
str1[3]:s3

=======compare=======
====before sorting===
str[0]: 1
str[1]: -1
str[2]: 0
str[3]: -1

=======sort=======
str0[0]:e1
str0[1]:e9
str0[2]:s12
str0[3]:s2
--
str0[0]:e1
str0[1]:e9
str0[2]:s12
str0[3]:s3

=======compare=======
====after sorting====
str[0]: 0
str[1]: 0
str[2]: 0
str[3]: -1

centripetal parametrization for curve fitting or interpolation

very useful to compute parameter for curve fitting or interpolation
the detail explanation is written here


and here is the code for three dimensional parametric curve


 void GetCentripetal_Param(  
       int ncp,                                                  //number of control point  
       double point[][3],                                        //control points of curve  
       double t[]                                                //array of t parameter (output) 
       )  
 {  
      double *dcp = (double*)malloc(sizeof(double) * (ncp-1));   //CP0-CP1, CP2-CP1, ..., CP[ncp-1][ncp]  
      double *sum = (double*)malloc(sizeof(double) * ncp);  
             
      int i, j;  
      double dcptotal = 0.0;  
      for(i=0; i<ncp-1; i++)  
           dcp[i] = 0.0;  
        
      sum[0] = 0.0;  
      for(i=0; i<ncp-1; i++)  
      {  
        for(j=0; j<3; j++)  
          dcp[i] += (point[i+1][j]-point[i][j]) * (point[i+1][j]-point[i][j]);        
       
        dcp[i] = sqrt(sqrt(dcp[i]));  
        dcptotal += dcp[i];  
        sum[i+1] = dcptotal;  
      }  
      sum[0] = 0.0;  
      double inv_dcptotal = 1 / dcptotal;  
      for(i=0; i<ncp; i++)  
         t[i] = (sum[i] * inv_dcptotal);  
        
      if(dcp) free(dcp);  
      if(sum) free(sum);  
 }     

simple example of using operator overloading in c++

 #include <stdio.h>  
 #include <stdlib.h>  
   
 //3d point  
 struct Pt3d  
 {  
      double x,y,z;  
   
      //define operator "+" for Pt3d  
      Pt3d operator+(Pt3d &p)  
      {  
           Pt3d temp = {  
                this->x + p.x,   
                this->y + p.y,   
                this->z + p.z,   
           };  
           return temp;  
      }  
 };  
   
   
 int _tmain(int argc, _TCHAR* argv[])  
 {  
      Pt3d a, b, c;  
      a.x = 1.0;  
      a.y = 1.1;  
      a.z = 1.2;  
   
      b.x = 2.0;  
      b.y = 2.1;  
      b.z = 2.2;  
        
      //by only using this, you can get addition of point a and b  
      c = a + b;  
        
      //let's check it  
      //result should be 3.00, 3.20, 3.40  
      printf("coordinate of c in a, y, z is as follow:\n");  
      printf("%.2f, %.2f, %.2f \n", c.x, c.y, c.z);  
      return 0;  
 } 
 
result:
 
3.00, 3.20, 3.40 

インドネシアにおける問題



インドネシアにおける問題から新たなアイデアがあるかもしれないため、リストアップいたしました。

・毎年の洪水(特に首都のジャカルタ)
・地震
・自然災害(地震、火山、等)
・自然災害の警告システム
・天気予報システム
・電力不足
・停電
・インフラ不足
・道路工事していても数週間後またすぐに壊れる
・違法住宅
・都市における川の汚染
・河川の狭窄
・渋滞
・汚職
・マラリア
・デング出血熱
・遠隔地の医者不足(当然診療所/病院不足となる)
・医療価格が高い
・未成年によるタバコ問題
・遠隔地の学校と教師不足
・貧困
・詐欺
・教育の低品質
・失業
・未成年によるタバコの問題
・ゆすり
・強盗
・著作権侵害
・森林伐採
・違法伐採
・森林火災
・都市化
・農業の生産性が低い
・農業による環境汚染
・作付け面積がわからない(マップがない)
・ネズミによる農業被害
・魚養殖による環境汚染
・養殖の魚の大量死
・サンゴの白化
・海洋ゴミ
・海洋の環境汚染
・外国漁船による違法漁業
・エビ養殖場所の汚染問題
・絶滅危惧動物の密猟
...

compute derivative coefficient of n-th degree polynomial equation

 #include <stdio.h>  
 #define ELE 4  
   
 int main()  
 {  
  int i;  
  int g = 3; //degree  
  double c[ELE][3] = {{1, 5, 9},   
                      {2, 6, 10},  
                      {3, 7, 11},  
                      {4, 8, 12}};   
    
  //ELE coefficient of parametric equation  
  //eg ELE == 0 4x^3 + 3x^2 + 2x + 1 2d element of array is x, y, z  
    
  for(int i=0; i<ELE; i++)  
  {  
   for(int j=0; j<3; j++)  
     printf("%.1f ", c[i][j]);  
   printf("\n");  
  }  
  printf("\n--\n");  
   
  //derivative  
  int n = 2; //n-th derivative   
  for(int drv=1; drv<=n; drv++)  
   for(i=g; i>=0; i--)  
     for(int axs=0; axs<3; axs++) //if we want the derivative not be 3 dimensional parametric equation delete this loop  
      c[i][axs]=c[i][axs]*(i-(drv-1));  
  //derivative  
   
  for(int i=0; i<ELE; i++)  
  {  
   for(int j=0; j<3; j++)  
     printf("%.1f ", c[i][j]);  
   printf("\n");  
  }  
   

2d dynamic array with known number of column element

how to make dynamic array with known number of column element
for example for a 3d coordinate.

suppose i need to make 2d dynamic array for a 3d coordinate, because the element of 3d coordinate is x, y, z so the number column is 3.
let's say i need to have
double point[some_number][3];
and that number is suppose unknown until we read the file, lets say ptscount.

one simple way to allocate the dynamic 2d array is as follow. 


double (*point)[3] = (double (*)[3])malloc(sizeof(double) * ptscount*3);

brief explanation
- double (*point)[3]: double variable of  "point" that has 3 array element, this will make point[ptscount][3]

- (double (*)[3]): casting to double of pointer that has 3 array element

- malloc(sizeof(double) * ptscount*3): memory allocation for (the size of double variable) times(×) (ptscount (number or row of the array) with 3 column)

after using it you have to free the memory
free (point);

use malloc for struct

 #include <stdio.h>  
 #include <stdlib.h>  
   
 struct Healdirect  
 {  
    double m_tors;  
    double curvedir[3];  
 };  
   
 void showme(struct Healdirect *healdeci)  
 {     
    struct Healdirect test;  
   
    test.m_tors = healdeci->m_tors;  
    test.curvedir[0] = healdeci->curvedir[0];  
    test.curvedir[1] = healdeci->curvedir[1];  
    test.curvedir[2] = healdeci->curvedir[2];  
   
    printf("torsion: %.2f \n", test.m_tors);  
    printf("curvature direction: ");  
    for(int i=0; i<3; i++)  
       printf("%.2f ", test.curvedir[i]);  
    printf("\n");  
 }  
   
 void main()  
 {  
    //example of struct using pointer and malloc  
    struct Healdirect *hd = malloc(sizeof(hd));  
      
    //sample data   
    hd->m_tors = 0.24;  
   hd->curvedir[0] = 0.99;  
   hd->curvedir[1] = 0.88;  
   hd->curvedir[2] = 0.77;  
   
   //show sample data after the memory is filled  
   showme(hd);  
   
   //free the memory  
   if(hd) free(hd);  
 }  
   

dynimcally allocated array 2

 #include <stdio.h>  
 #include <stdlib.h>  
   
 void main()  
 {  
    double *ary;   //will be your dynamic 1d array  
    int num;       //your array element  
   
    //input your number of array element  
    printf("num: ");  
    scanf("%d", &num);  
   
    //syntax: number of block address times byte needed (sizeof) for double variable  
    ary = malloc(num * sizeof(double));     
   
    //fill the array (can be changed to any number) and display them  
    for(int i=0; i<num; i++)  
    {  
       ary[i] = i * i * 2.8;  
       printf("%.2f\n", ary[i]);  
    }  
   
    //must free the memory allocation to not make memory leak  
    if(ary) free(ary);  
 }  
   

dynamically allocated 2d array using an array of pointers

 #include <stdio.h>   
 #include <stdlib.h>   
     
  void main()   
  {   
    int row = 5, col = 3;   
    int i, j;   
    double *ar[row]; //will be your 2d array   
   
    for(i=0; i<row; i++)  //make it into 2d array
         ar[i] = malloc(sizeof(int)*col);  //get the column number of array
   
    for(i=0; i<row; i++)  
    {  
         for(j=0; j<col; j++)  
         {  
              ar[i][j] = (i + j) * 1.0;  //filling the array element
         }  
    }  
     
    for(i=0; i<row; i++)  
    {  
         for(j=0; j<col; j++)  
         {  
          printf("[%d][%d]=%.2f ", i, j, ar[i][j]);   //print the array after filling it
         }  
         printf("\n");  
    }  
   
    //must free the memorry allocation after using it  
    for(i=0; i<row; i++)  
         free(ar[i]);      
  } 
result:
[0][0]=0.00 [0][1]=1.00 [0][2]=2.00
[1][0]=1.00 [1][1]=2.00 [1][2]=3.00
[2][0]=2.00 [2][1]=3.00 [2][2]=4.00
[3][0]=3.00 [3][1]=4.00 [3][2]=5.00
[4][0]=4.00 [4][1]=5.00 [4][2]=6.00

dynamically allocated array

 #include <stdio.h>  
 #include <stdlib.h>  
   
 void main()  
 {  
     double *ar; //will be your array  
     double elem[] = {0.1, 0.2 ,0.3 ,0.4 ,0.5};   
     int num = 5, i;  
   
     printf("array number: %d\n", num);  
     for(i=0; i<num; i++)  
         printf("[%d]:%.2f\n", i, elem[i]);  
   
     printf("lets double it and put in your new array using malloc\n");  
     printf("--\n");  
   
     ar = malloc(sizeof(double)*num); //allocate the memory for your array  
   
     for(i=0; i<num; i++){  
       *(ar+i) = elem[i] * 2;  
     }  
   
     for(i=0; i<num; i++)   
         printf("array[%d]=%.2f\n", i, ar[i]);  
   
 free(ar); //must free the memorry allocation after using it  
 } 
 
result:
-------------- 
 array number: 5
[0]:0.10
[1]:0.20
[2]:0.30
[3]:0.40
[4]:0.50
lets double it and put in your new array using malloc
--
array[0]=0.20
array[1]=0.40
array[2]=0.60
array[3]=0.80
array[4]=1.00 

binomial coefficient c code

 #include<stdio.h>  
   
 //binomial coefficient function  
 double Ni(  
         int deg,    //degree   
         int b       //for binomial  
         )  
 {  
     if( deg < 0 )  
         return 0.0;  
     else if ( deg == 0 )  
         return 1.0;  
     else{  
         double temp = 1.0;  
         for(int i=1; i<=b;i++ ){  
             temp = temp* (double)(deg-i+1)/i;  
             printf("%f\n", temp);  
         }  
         return temp;  
     }  
 }  
   
   
 void main ()  
 {  
     int a=10, b=3;  
     double bin;  
     bin = Ni(a, b);  
     printf("\n=============\n");  
     printf("%f\n", bin);  
 }  

comparison of secant and bisection method

   
 #include<stdio.h>  
 #include<math.h>  
 #include<time.h>  
   
 //example of function f(t), you can make any function you like  
 float f(float t)  
 {  
   return(((48.2291-30.6208*t-43) * (48.2291-30.6208*t-43)) + 35*t - 25.0);   
 }  
   
 void main()  
 {  
     
   float a = 0.1, b = 0.3, c = 0, e = 7.5e-3;  
   //a, b interval  
   //e error  
   
   int count = 1, n = 50; //n=maximum iteration  
     
   //  
   //secant  
   //  
   clock_t begin = clock();  
   do  
   {      
     c = (a*f(b) - b*f(a)) / (f(b) - f(a));  
     //c = b - (f(b)*(b-a) / (f(b) - f(a)));  
     a=b;  
     b=c;  
     printf("i No-%d  t=%f  d=%f\n",count,c, f(c));  
     count++;  
     if(count==n) break;  
   } while(fabs(f(c))&gt;e);  
   
   clock_t end = clock();  
   double time_spent = (double)(end - begin) / CLOCKS_PER_SEC;  
   printf("time:%f", time_spent);  
   
   printf("\nThe required solution is %f\n",c);  
   printf("d = %f\n", f(c) + 25);  
   
   //  
   //bisection  
   //  
   double fa, fb, fc;  
   a = 0.1; b = 0.3; c = 0; e = 7.5e-3;  
   count = 1;  
   clock_t begin2 = clock();  
   do{  
     c = (a+b)/2;  
     fa = f(a);  
     fb = f(b);  
     fc = f(c);  
   
     if(fa*fc &lt; 0){  
       b = c;  
     }  
     else{  
       a = c;  
     }  
     printf("i No-%d  t=%f  d=%f\n", count, c, fc);  
     count++;  
     if(count==n) break;  
   } while(fabs(fc)&gt;e);  
   
   clock_t end2 = clock();  
   double time_spent2 = (double)(end2 - begin2) / CLOCKS_PER_SEC;  
   printf("time:%f", time_spent2);  
   
   printf("\nThe required solution is %f\n",c);  
   printf("d = %f\n", fc + 25);  
   
    
 }