Trong ứng dụng tôi đang lược tả, tôi thấy rằng trong một số trường hợp, chức năng này có thể chiếm hơn 10% tổng thời gian thực hiện.Có thể cuộn phiên bản nhanh hơn đáng kể của sqrt
Tôi đã nhìn thấy cuộc thảo luận qua nhiều năm triển khai sqrt nhanh hơn bằng cách sử dụng thủ thuật lén lút trôi nổi, nhưng tôi không biết liệu những thứ đó có lỗi thời trên các CPU hiện đại hay không.
Trình biên dịch MSVC++ 2008 đang được sử dụng, để tham khảo ... mặc dù tôi muốn giả định sqrt sẽ không thêm nhiều chi phí mặc dù.
Xem thêm tại đây để thảo luận tương tự về chức năng modf.
EDIT: để tham khảo, this là một phương pháp được sử dụng rộng rãi, nhưng thực sự có nhanh hơn nhiều không? Có bao nhiêu chu kỳ là SQRT vào những ngày này?
Bạn đang sử dụng nó như thế nào? Các hàm dựng sẵn có khả năng là khá tốt cho trường hợp chung, nhưng nếu bạn đang sử dụng nó theo cách chuyên biệt hơn thì có nhiều phạm vi để cải thiện. –
Bạn có thể đăng một số mã không? Cách tốt nhất để tối ưu hóa sqrt là loại bỏ nó, hoặc ít nhất là giảm số lượng cuộc gọi đến nó, điều này có thể xảy ra. – IVlad
Mã là mô hình vật lý mềm và dài, phức tạp từ bên thứ 3. Không phải là một vài vòng bên trong làm sqrt nơi chiều dài^2 có thể được sử dụng thay vì chiều dài :) –