// vector_test_complex.edp // // Discussion: // // Demonstrate how complex vectors can be defined and manipulated. // // Location: // // http://people.sc.fsu.edu/~jburkardt/freefem_src/vector_test/vector_test_complex.edp // // Licensing: // // This code is distributed under the MIT license. // // Modified: // // 05 July 2015 // // Author: // // John Burkardt // cout << "\n"; cout << "vector_test_complex:\n"; cout << " FreeFem++ version\n"; cout << " Demonstrate how complex vectors can be defined and manipulated.\n"; load "lapack" // // Declare complex vectors of length 3. // complex[int] cv1(3); complex[int] cv2(3); complex[int] cv3(3); // // Set vectors. // cv1 = 2.1; cout << " cv1 = " << cv1 << "\n"; cv2(0) = 1 + 2i; cv2(1) = 3 - 4i; cv2(2) = 5 + 6i; cout << " cv2 = " << cv2 << "\n"; cv3 = [ 1i, 2-3i, 0.5 ]; cout << " cv3 = " << cv3 << "\n"; // // Dimension of a vector. // cout << " cv1.n = " << cv1.n << "\n"; // // Max/Min/Sum // Note that complex max and min are real and imaginary component-wise. // cout << " cv3.max = " << cv3.max << "\n"; cout << " cv3.min = " << cv3.min << "\n"; cout << " cv3.sum = " << cv3.sum << "\n"; // // Norms. // cout << " cv3.l1 = " << cv3.l1 << "\n"; cout << " cv3.l2 = " << cv3.l2 << "\n"; cout << " cv3.linfty = " << cv3.linfty << "\n"; // // Resize a vector. // cv3.resize ( 5 ); cv3(3) = -5+4.5i; cv3(4) = 7+2i; cout << " After cv3.resize(5), cv3.n = " << cv3.n << "\n"; cout << " cv3 = " << cv3 << "\n"; // // Sort a vector. // Cannot sort a complex vector... // //cv3.sort; //cout << " After cv3.sort, cv3 = " << cv3 << "\n"; // // Range // cv3(2:3) = 7; cout << " After cv3(2:3)=7, cv3 = " << cv3 << "\n"; // // Arithmetic. // cv2 = 0.5 * cv2; cout << " cv2 = 0.5 * cv2 = " << cv2 << "\n"; cv2 = 1i * cv2; cout << " cv2 = 1i * cv2 = " << cv2 << "\n"; cout << "\n"; cout << " cv1 = " << cv1 << "\n"; cout << "\n"; cv1 = cv1 + 1.5 * cv2; cout << " cv1 = cv1 + 1.5 * cv2 = " << cv1 << "\n"; // // Functions? // cout << " cv1 = " << cv1 << "\n"; cv2 = sqrt ( cv1 ); cout << " cv2 = sqrt ( cv1 ) = " << cv2 << "\n"; cv2 = sin ( cv1 ); cout << " cv2 = sin ( cv1 ) = " << cv2 << "\n"; cv2 = exp ( cv1 ); cout << " cv2 = exp ( cv1 ) = " << cv2 << "\n"; // // Write to file: // { cout << " Write cv3 to text file.\n"; ofstream output ( "vector_test_complex.txt" ); output << cv3; } // // Read from file. // cout << " Read cv4 from text file.\n"; complex[int] cv4(5); ifstream input ( "vector_test_complex.txt" ); input >> cv4; cout << " cv4 = " << cv4 << "\n"; // // Terminate. // cout << "\n"; cout << "vector_test_complex:\n"; cout << " Normal end of execution.\n"; exit ( 0 );