C++-এর cmath লাইব্রেরিতে sqrt ছাড়াও স্কয়ার রুট বের করার জন্য বিভিন্ন ফাংশন আছে। sqrt মূলত double টাইপ ইনপুটের জন্য ব্যবহৃত হয়। বাকিগুলো float, long টাইপ ডেটা ইত্যাদির জন্য ব্যবহৃত হয়। এই ফাংশনগুলোর ব্যবহার দেখি।
sqrt() ফাংশন
এই ফাংশন double টাইপ ডেটার জন্য ব্যবহৃত হয়। তাই এটি double টাইপের স্কয়ার রুট রিটার্ন করে। সিনট্যাক্স নিচের মতো।
double sqrt(double argument)
উদাহরণ
#include <cmath>
#include <iomanip>
#include <iostream>
using namespace std;
main() {
double x = 144.0;
double y = 180.0;
cout << fixed << setprecision(12) << sqrt(x) << endl;
cout << fixed << setprecision(12) << sqrt(y) << endl;
}
আউটপুট
12.000000000000 13.416407864999
দ্রষ্টব্য: আর্গুমেন্ট দিতে হবে, অন্যথায় এরর দেবে। আর যদি আর্গুমেন্ট 네가েটিভ হয়, তবে NaN রিটার্ন করবে।
sqrtf() ফাংশন
এই ফাংশন ফ্লোটিং টাইপ ডেটার জন্য ব্যবহৃত হয়। তাই এটি float টাইপের স্কয়ার রুট রিটার্ন করে। সিনট্যাক্স নিচের মতো।
float sqrtf(float argument)
উদাহরণ
#include <cmath>
#include <iomanip>
#include <iostream>
using namespace std;
main() {
float x = 144.0;
float y = 180.0;
cout << fixed << setprecision(6) << sqrtf(x) << endl;
cout << fixed << setprecision(6) << sqrtf(y) << endl;
}
আউটপুট
12.000000 13.416408
দ্রষ্টব্য: আর্গুমেন্ট দিতে হবে, অন্যথায় এরর দেবে। আর যদি আর্গুমেন্ট 네가েটিভ হয়, তবে NaN রিটার্ন করবে।
sqrtl() ফাংশন
এই ফাংশন long double টাইপ ডেটার জন্য ব্যবহৃত হয়। তাই এটি long double টাইপের স্কয়ার রুট রিটার্ন করে। এটি double-এর চেয়ে বেশি প্রিসিশন। যখন আমরা 10^18 ক्रमের ইন্টিজার ব্যবহার করি তখন এই ফাংশন হেলপফুল।
long double sqrtl(long double argument)
উদাহরণ
#include <cmath>
#include <iomanip>
#include <iostream>
using namespace std;
main() {
long long int x = 5000000000000000000;
long long int y = 999999999999999999;
cout << fixed << setprecision(12) << sqrtl(x) << endl;
cout << fixed << setprecision(12) << sqrtl(y) << endl;
}
আউটপুট
2236067977.499789696420 999999999.999999999476