मैं हाल ही में एक ऐसे मुद्दे पर भाग गया जिसे आसानी से मापांक विभाजन का उपयोग करके हल किया जा सकता था, लेकिन इनपुट एक फ्लोट था:
एक आवधिक फ़ंक्शन (जैसे
sin) और एक कंप्यूटर फ़ंक्शन को देखते हुए जो केवल अवधि सीमा (जैसे [-π, make]) के भीतर गणना कर सकते हैं, एक फ़ंक्शन बनाते हैं जो किसी भी इनपुट को संभाल सकता है।
"स्पष्ट" समाधान कुछ इस प्रकार है:
#include <cmath>
float sin(float x){
return limited_sin((x + M_PI) % (2 *M_PI) - M_PI);
}
यह काम क्यों नहीं करता है? मुझे यह त्रुटि मिली:
error: invalid operands of types double and double to binary operator %
दिलचस्प है, यह पायथन में काम करता है:
def sin(x):
return limited_sin((x + math.pi) % (2 * math.pi) - math.pi)
sin(x)बड़े मूल्यों के लिए कम्प्यूटिंग के लिएxएक बहुत ही कठिन ट्रान्सेंडैंटल तर्क कटौती प्रक्रिया की आवश्यकता होती है जो किसी भी परिमित सन्निकटन के साथ नहीं मिल सकती है।