// Copyright 2012 The Go Authors. All rights reserved. | |

// Use of this source code is governed by a BSD-style | |

// license that can be found in the LICENSE file. | |

// +build ignore | |

package main | |

import ( | |

"fmt" | |

"math" | |

) | |

const delta = 1e-6 | |

func Sqrt(x float64) float64 { | |

z := x | |

n := 0.0 | |

for math.Abs(n-z) > delta { | |

n, z = z, z-(z*z-x)/(2*z) | |

} | |

return z | |

} | |

func main() { | |

const x = 2 | |

mine, theirs := Sqrt(x), math.Sqrt(x) | |

fmt.Println(mine, theirs, mine-theirs) | |

} |