


from __future__ import annotations

def 		_UpperCAmelCase							(     SCREAMING_SNAKE_CASE__     :   int     ,	SCREAMING_SNAKE_CASE__     :   int     ,	SCREAMING_SNAKE_CASE__     :   int							):
     assert (
         c % greatest_common_divisor(SCREAMING_SNAKE_CASE__     ,	SCREAMING_SNAKE_CASE__							) == 0
     )  # greatest_common_divisor(a,b) function implemented below
     ((__UpperCamelCase)				, (__UpperCamelCase)				, (__UpperCamelCase))       				=extended_gcd(SCREAMING_SNAKE_CASE__     ,	SCREAMING_SNAKE_CASE__							)  # extended_gcd(a,b) function implemented below
     __UpperCamelCase       				=c / d
     return (r * x, r * y)

def 		_UpperCAmelCase							(     SCREAMING_SNAKE_CASE__     :   int     ,	SCREAMING_SNAKE_CASE__     :   int     ,	SCREAMING_SNAKE_CASE__     :   int     ,	SCREAMING_SNAKE_CASE__     :   int = 2							):
     ((__UpperCamelCase)				, (__UpperCamelCase))       				=diophantine(SCREAMING_SNAKE_CASE__     ,	SCREAMING_SNAKE_CASE__     ,	SCREAMING_SNAKE_CASE__							)  # Initial value
     __UpperCamelCase       				=greatest_common_divisor(SCREAMING_SNAKE_CASE__     ,	SCREAMING_SNAKE_CASE__							)
     __UpperCamelCase       				=a // d
     __UpperCamelCase       				=b // d

     for i in range(SCREAMING_SNAKE_CASE__							):
          __UpperCamelCase       				=xa + i * q
          __UpperCamelCase       				=ya - i * p
          print(SCREAMING_SNAKE_CASE__     ,	SCREAMING_SNAKE_CASE__							)

def 		_UpperCAmelCase							(     SCREAMING_SNAKE_CASE__     :   int     ,	SCREAMING_SNAKE_CASE__     :   int							):
     if a < b:
          __UpperCamelCase				, __UpperCamelCase       				=b, a

     while a % b != 0:
          __UpperCamelCase				, __UpperCamelCase       				=b, a % b

     return b

def 		_UpperCAmelCase							(     SCREAMING_SNAKE_CASE__     :   int     ,	SCREAMING_SNAKE_CASE__     :   int							):
     assert a >= 0 and b >= 0

     if b == 0:
          __UpperCamelCase				, __UpperCamelCase				, __UpperCamelCase       				=a, 1, 0
     else:
          ((__UpperCamelCase)				, (__UpperCamelCase)				, (__UpperCamelCase))       				=extended_gcd(SCREAMING_SNAKE_CASE__     ,	a % b							)
          __UpperCamelCase       				=q
          __UpperCamelCase       				=p - q * (a // b)

     assert a % d == 0 and b % d == 0
     assert d == a * x + b * y

     return (d, x, y)


if __name__ == "__main__":
   from doctest import testmod

   testmod(name='diophantine', verbose=True)
   testmod(name='diophantine_all_soln', verbose=True)
   testmod(name='extended_gcd', verbose=True)
   testmod(name='greatest_common_divisor', verbose=True)









import json
import os
import tempfile

import datasets
from utils import generate_example_dataset, get_duration


_A									=		50_0000

_A			,	_A									=		os.path.split(__file__)
_A									=		os.path.join(RESULTS_BASEPATH, 'results', RESULTS_FILENAME.replace('.py', '.json'))

@get_duration
def 		_UpperCAmelCase							(     SCREAMING_SNAKE_CASE__     :   datasets.Dataset							):
     __UpperCamelCase       				=dataset.select(range(0     ,	len(SCREAMING_SNAKE_CASE__							)     ,	2							)							)

@get_duration
def 		_UpperCAmelCase							(     SCREAMING_SNAKE_CASE__     :   datasets.Dataset							):
     __UpperCamelCase       				=dataset.sort('numbers'							)

@get_duration
def 		_UpperCAmelCase							(     SCREAMING_SNAKE_CASE__     :   datasets.Dataset							):
     __UpperCamelCase       				=dataset.shuffle()

@get_duration
def 		_UpperCAmelCase							(     SCREAMING_SNAKE_CASE__     :   datasets.Dataset							):
     __UpperCamelCase       				=dataset.train_test_split(0.1							)

@get_duration
def 		_UpperCAmelCase							(     SCREAMING_SNAKE_CASE__     :   datasets.Dataset     ,	SCREAMING_SNAKE_CASE__     :   int=10							):
     for shard_id in range(SCREAMING_SNAKE_CASE__							):
          __UpperCamelCase       				=dataset.shard(SCREAMING_SNAKE_CASE__     ,	SCREAMING_SNAKE_CASE__							)

def 		_UpperCAmelCase							(     ):
     __UpperCamelCase       				={'num examples': SPEED_TEST_N_EXAMPLES}
     __UpperCamelCase       				=(select, sort, shuffle, train_test_split, shard)
     with tempfile.TemporaryDirectory() as tmp_dir:
          print('generating dataset'							)
          __UpperCamelCase       				=datasets.Features({'text': datasets.Value('string'							), 'numbers': datasets.Value('float32'							)}							)
          __UpperCamelCase       				=generate_example_dataset(
              os.path.join(SCREAMING_SNAKE_CASE__     ,	'dataset.arrow'							)     ,	SCREAMING_SNAKE_CASE__     ,	num_examples=SCREAMING_SNAKE_CASE__							)
          print('Functions'							)
          for func in functions:
               print(func.__name__							)
               __UpperCamelCase       				=func(SCREAMING_SNAKE_CASE__							)

     with open(SCREAMING_SNAKE_CASE__     ,	'wb'							) as f:
          f.write(json.dumps(SCREAMING_SNAKE_CASE__							).encode('utf-8'							)							)


if __name__ == "__main__":  # useful to run the profiler
   benchmark_indices_mapping()





