PracHub
QuestionsCoachesLearningGuidesInterview Prep

Quick Overview

This question evaluates understanding of numerical methods, floating-point arithmetic, and algorithmic implementation in the Coding & Algorithms domain by requiring an approximation of the sine function under explicit error bounds.

  • medium
  • Snapchat
  • Coding & Algorithms
  • Software Engineer

Implement sin(x) with precision constraints

Company: Snapchat

Role: Software Engineer

Category: Coding & Algorithms

Difficulty: medium

Interview Round: Technical Screen

## Coding Question: Implement `sin(x)` Implement a function that returns an approximation of the trigonometric sine function. ### Function signature - Input: a real number `x` (in radians) - Output: `sin(x)` as a floating-point number ### Restrictions - Do **not** call library trig functions (e.g., `sin`, `cos`, `tan`). - You may use basic arithmetic operations and constants. ### Accuracy requirement - Your result must satisfy: \(|\text{ans} - \sin(x)| \le \varepsilon\) - Assume the interviewer provides a specific `ε` (e.g., `1e-6`). ### Follow-ups 1. After writing a straightforward version, describe how you would **optimize** it (time and/or numerical stability). 2. In real systems, how would you further **engineer** this function for performance and reliability (e.g., handling large `|x|`, speed, testing, edge cases)? ### Notes - You may assume IEEE-754 `double` behavior. - Consider how your implementation behaves for very large magnitude `x` and near special points (e.g., around `0`, `π`, `π/2`).

Quick Answer: This question evaluates understanding of numerical methods, floating-point arithmetic, and algorithmic implementation in the Coding & Algorithms domain by requiring an approximation of the sine function under explicit error bounds.

Approximate sine without calling library trig functions, using range reduction and a Taylor series.

Constraints

  • Do not call math.sin/cos/tan

Examples

Input: (0.0, 1e-08)

Expected Output: 0.0

Explanation: sin(0).

Input: (1.5707963267948966, 1e-08)

Expected Output: 1.0

Explanation: Near pi/2.

Input: (-0.5235987755982988, 1e-08)

Expected Output: -0.5

Explanation: Negative angle.

Input: (31.41592653589793, 1e-08)

Expected Output: -0.0

Explanation: Large multiple of pi after reduction.

Hints

  1. Reduce x to [-pi, pi], then evaluate the alternating Taylor series.
Last updated: Jun 27, 2026

Loading coding console...

PracHub

Master your tech interviews with 8,000+ real questions from top companies.

Product

  • Questions
  • Learning Tracks
  • Interview Guides
  • Resources
  • Premium
  • For Universities
  • Student Access

Browse

  • By Company
  • By Role
  • By Category
  • Topic Hubs
  • SQL Questions
  • AI Coding Questions
  • Compare Platforms
  • Discord Community

Support

  • support@prachub.com
  • (916) 541-4762

Legal

  • Privacy Policy
  • Terms of Service
  • About Us

© 2026 PracHub. All rights reserved.

Related Coding Questions

  • Determine Whether Courses Can Be Completed - Snapchat (medium)
  • Solve Decimal Coin Change - Snapchat (medium)
  • Find Maximum Island Perimeter - Snapchat (medium)
  • Solve Three Algorithmic Tasks - Snapchat (hard)
  • Implement a Timestamped Counter - Snapchat (medium)