Module: RubyHDL::High::SEnumerable

Defined in:
lib/HDLRuby/std/sequencer_sw.rb

Overview

Module adding functionalities to object including the +seach+ method.

Instance Method Summary collapse

Instance Method Details

#sall?(arg = nil, &ruby_block) ⇒ Boolean

Tell if all the elements respect a given criterion given either as +arg+ or as block.

Returns:

  • (Boolean)


267
268
269
# File 'lib/HDLRuby/std/sequencer_sw.rb', line 267

def sall?(arg = nil,&ruby_block)
  self.seach.sall?(arg,&ruby_block)
end

#sany?(arg = nil, &ruby_block) ⇒ Boolean

Tell if any of the elements respects a given criterion given either as +arg+ or as block.

Returns:

  • (Boolean)


273
274
275
# File 'lib/HDLRuby/std/sequencer_sw.rb', line 273

def sany?(arg = nil,&ruby_block)
  self.seach.sany?(arg,&ruby_block)
end

#schain(arg) ⇒ Object

Returns an SEnumerator generated from current enumerable and +arg+



278
279
280
# File 'lib/HDLRuby/std/sequencer_sw.rb', line 278

def schain(arg)
  self.seach.schain(arg)
end

#schunk(*args, &ruby_block) ⇒ Object

HW implementation of the Ruby chunk. NOTE: to do, or may be not.



284
285
286
# File 'lib/HDLRuby/std/sequencer_sw.rb', line 284

def schunk(*args,&ruby_block)
  raise "schunk is not supported yet."
end

#schunk_while(*args, &ruby_block) ⇒ Object

HW implementation of the Ruby chunk_while. NOTE: to do, or may be not.



290
291
292
# File 'lib/HDLRuby/std/sequencer_sw.rb', line 290

def schunk_while(*args,&ruby_block)
  raise "schunk_while is not supported yet."
end

#scompactObject

HW implementation of the Ruby compact, but remove 0 values instead on nil (since nil that does not have any meaning in HW).



311
312
313
# File 'lib/HDLRuby/std/sequencer_sw.rb', line 311

def scompact
  self.seach.scompact(&ruby_block)
end

#scount(obj = nil, &ruby_block) ⇒ Object

WH implementation of the Ruby count.



317
318
319
# File 'lib/HDLRuby/std/sequencer_sw.rb', line 317

def scount(obj = nil, &ruby_block)
  self.seach.scount(obj,&ruby_block)
end

#scycle(n = nil, &ruby_block) ⇒ Object

HW implementation of the Ruby cycle.



322
323
324
# File 'lib/HDLRuby/std/sequencer_sw.rb', line 322

def scycle(n = nil,&ruby_block)
  self.seach.scycle(n,&ruby_block)
end

#sdrop(n) ⇒ Object

HW implementation of the Ruby drop.



334
335
336
# File 'lib/HDLRuby/std/sequencer_sw.rb', line 334

def sdrop(n)
  self.seach.sdrop(n)
end

#sdrop_while(&ruby_block) ⇒ Object

HW implementation of the Ruby drop_while.



339
340
341
# File 'lib/HDLRuby/std/sequencer_sw.rb', line 339

def sdrop_while(&ruby_block)
  self.seach.sdrop_while(n)
end

#seach_cons(n, &ruby_block) ⇒ Object

HW implementation of the Ruby each_cons



344
345
346
# File 'lib/HDLRuby/std/sequencer_sw.rb', line 344

def seach_cons(n,&ruby_block)
  self.seach.seach_cons(n,&ruby_block)
end

#seach_entry(*args, &ruby_block) ⇒ Object

HW implementation of the Ruby each_entry. NOTE: to do, or may be not.



350
351
352
# File 'lib/HDLRuby/std/sequencer_sw.rb', line 350

def seach_entry(*args,&ruby_block)
  raise "seach_entry is not supported yet."
end

#seach_nexts(num, &ruby_block) ⇒ Object

Iterator on the +num+ next elements. NOTE:

  • Stop iteration when the end of the range is reached or when there are no elements left
  • This is not a method from Ruby but one specific for hardware where creating a array is very expensive.


564
565
566
# File 'lib/HDLRuby/std/sequencer_sw.rb', line 564

def seach_nexts(num,&ruby_block)
  return self.seach.snexts(num,&ruby_block)
end

#seach_range(rng, &ruby_block) ⇒ Object

Iterator on each of the elements in range +rng+. NOTE:

  • Stop iteration when the end of the range is reached or when there are no elements left
  • This is not a method from Ruby but one specific for hardware where creating a array is very expensive.


261
262
263
# File 'lib/HDLRuby/std/sequencer_sw.rb', line 261

def seach_range(rng,&ruby_block)
  self.seach.seach_range(rng,&ruby_block)
end

#seach_slice(n, &ruby_block) ⇒ Object

HW implementation of the Ruby each_slice



355
356
357
# File 'lib/HDLRuby/std/sequencer_sw.rb', line 355

def seach_slice(n,&ruby_block)
  self.seach.seach_slice(n,&ruby_block)
end

#seach_with_index(*args, &ruby_block) ⇒ Object

HW implementation of the Ruby each_with_index.



360
361
362
# File 'lib/HDLRuby/std/sequencer_sw.rb', line 360

def seach_with_index(*args,&ruby_block)
  self.seach.swith_index(*args,&ruby_block)
end

#seach_with_object(obj, &ruby_block) ⇒ Object

HW implementation of the Ruby each_with_object.



365
366
367
# File 'lib/HDLRuby/std/sequencer_sw.rb', line 365

def seach_with_object(obj,&ruby_block)
  self.seach.swith_object(obj,&ruby_block)
end

#sfind(if_none_proc, &ruby_block) ⇒ Object

HW implementation of the Ruby find. NOTE: contrary to Ruby, if_none_proc is mandatory since there is no nil in HW. Moreover, the argument can also be a value.



329
330
331
# File 'lib/HDLRuby/std/sequencer_sw.rb', line 329

def sfind(if_none_proc, &ruby_block)
  self.seach.sfind(if_non_proc,&ruby_block)
end

#sfind_index(obj = nil, &ruby_block) ⇒ Object

HW implementation of the Ruby find_index.



380
381
382
# File 'lib/HDLRuby/std/sequencer_sw.rb', line 380

def sfind_index(obj = nil, &ruby_block)
  self.seach.sfind_index(obj,&ruby_block)
end

#sfirst(n = 1) ⇒ Object

HW implementation of the Ruby first.



385
386
387
# File 'lib/HDLRuby/std/sequencer_sw.rb', line 385

def sfirst(n=1)
  self.seach.sfirst(n)
end

#sflat_map(&ruby_block) ⇒ Object

HW implementation of the Ruby flat_map. NOTE: actually due to the way HDLRuby handles vectors, should work like smap



305
306
307
# File 'lib/HDLRuby/std/sequencer_sw.rb', line 305

def sflat_map(&ruby_block)
  self.seach.sflat_map(&ruby_block)
end

#sgrep(*args, &ruby_block) ⇒ Object

HW implementation of the Ruby grep. NOTE: to do, or may be not.



391
392
393
# File 'lib/HDLRuby/std/sequencer_sw.rb', line 391

def sgrep(*args,&ruby_block)
  raise "sgrep is not supported yet."
end

#sgrep_v(*args, &ruby_block) ⇒ Object

HW implementation of the Ruby grep_v. NOTE: to do, or may be not.



397
398
399
# File 'lib/HDLRuby/std/sequencer_sw.rb', line 397

def sgrep_v(*args,&ruby_block)
  raise "sgrep_v is not supported yet."
end

#sgroup_by(*args, &ruby_block) ⇒ Object

HW implementation of the Ruby group_by. NOTE: to do, or may be not.



403
404
405
# File 'lib/HDLRuby/std/sequencer_sw.rb', line 403

def sgroup_by(*args,&ruby_block)
  raise "sgroup_by is not supported yet."
end

#sinclude?(obj) ⇒ Boolean

HW implementation of the Ruby include?

Returns:

  • (Boolean)


408
409
410
# File 'lib/HDLRuby/std/sequencer_sw.rb', line 408

def sinclude?(obj)
  return self.seach.sinclude?(obj)
end

#sinject(*args, &ruby_block) ⇒ Object

HW implementation of the Ruby inject.



413
414
415
# File 'lib/HDLRuby/std/sequencer_sw.rb', line 413

def sinject(*args,&ruby_block)
  return self.seach.sinject(*args,&ruby_block)
end

#slazy(*args, &ruby_block) ⇒ Object

HW implementation of the Ruby lazy. NOTE: to do, or may be not.



424
425
426
# File 'lib/HDLRuby/std/sequencer_sw.rb', line 424

def slazy(*args,&ruby_block)
  raise "slazy is not supported yet."
end

#smap(&ruby_block) ⇒ Object

Returns a vector containing the execution result of the given block on each element. If no block is given, return an SEnumerator. NOTE: be carful that the resulting vector can become huge if there are many element.



298
299
300
# File 'lib/HDLRuby/std/sequencer_sw.rb', line 298

def smap(&ruby_block)
  self.seach.smap(&ruby_block)
end

#smax(n = nil, &ruby_block) ⇒ Object

HW implementation of the Ruby max.



429
430
431
# File 'lib/HDLRuby/std/sequencer_sw.rb', line 429

def smax(n = nil, &ruby_block)
  return self.seach.smax(n,&ruby_block)
end

#smax_by(n = nil, &ruby_block) ⇒ Object

HW implementation of the Ruby max_by.



434
435
436
# File 'lib/HDLRuby/std/sequencer_sw.rb', line 434

def smax_by(n = nil, &ruby_block)
  return self.seach.smax_by(n,&ruby_block)
end

#smin(n = nil, &ruby_block) ⇒ Object

HW implementation of the Ruby min.



439
440
441
# File 'lib/HDLRuby/std/sequencer_sw.rb', line 439

def smin(n = nil, &ruby_block)
  return self.seach.smin(n,&ruby_block)
end

#smin_by(n = nil, &ruby_block) ⇒ Object

HW implementation of the Ruby min_by.



444
445
446
# File 'lib/HDLRuby/std/sequencer_sw.rb', line 444

def smin_by(n = nil, &ruby_block)
  return self.seach.smin_by(n,&ruby_block)
end

#sminmax(&ruby_block) ⇒ Object

HW implementation of the Ruby minmax.



449
450
451
# File 'lib/HDLRuby/std/sequencer_sw.rb', line 449

def sminmax(&ruby_block)
  return self.seach.sminmax(&ruby_block)
end

#sminmax_by(&ruby_block) ⇒ Object

HW implementation of the Ruby minmax_by.



454
455
456
# File 'lib/HDLRuby/std/sequencer_sw.rb', line 454

def sminmax_by(&ruby_block)
  return self.seach.sminmax_by(&ruby_block)
end

#snone?(arg = nil, &ruby_block) ⇒ Boolean

Tell if none of the elements respects a given criterion given either as +arg+ or as block.

Returns:

  • (Boolean)


460
461
462
# File 'lib/HDLRuby/std/sequencer_sw.rb', line 460

def snone?(arg = nil,&ruby_block)
  return self.seach.snone?(arg,&ruby_block)
end

#sone?(arg = nil, &ruby_block) ⇒ Boolean

Tell if one and only one of the elements respects a given criterion given either as +arg+ or as block.

Returns:

  • (Boolean)


466
467
468
# File 'lib/HDLRuby/std/sequencer_sw.rb', line 466

def sone?(arg = nil,&ruby_block)
  return self.seach.sone?(arg,&ruby_block)
end

#spartition(*args, &ruby_block) ⇒ Object

HW implementation of the Ruby partition. NOTE: to do, or may be not.



472
473
474
# File 'lib/HDLRuby/std/sequencer_sw.rb', line 472

def spartition(*args,&ruby_block)
  raise "spartition is not supported yet."
end

#sreduce(*args, &ruby_block) ⇒ Object

HW implementation of the Ruby reduce.



418
419
420
# File 'lib/HDLRuby/std/sequencer_sw.rb', line 418

def sreduce(*args,&ruby_block)
  return self.seach.sreduce(*args,&ruby_block)
end

#sreject(&ruby_block) ⇒ Object

HW implementatiob of the Ruby reject.



477
478
479
# File 'lib/HDLRuby/std/sequencer_sw.rb', line 477

def sreject(&ruby_block)
  return self.seach.sreject(&ruby_block)
end

#sreverse_each(*args, &ruby_block) ⇒ Object

HW implementatiob of the Ruby reverse_each.



482
483
484
# File 'lib/HDLRuby/std/sequencer_sw.rb', line 482

def sreverse_each(*args,&ruby_block)
  return self.seach.sreverse_each(*args,&ruby_block)
end

#sselect(&ruby_block) ⇒ Object

HW implementation of the Ruby select.



375
376
377
# File 'lib/HDLRuby/std/sequencer_sw.rb', line 375

def sselect(&ruby_block)
  self.seach.sselect(&ruby_block)
end

#sslice_after(pattern = nil, &ruby_block) ⇒ Object

HW implementation of the Ruby slice_after. NOTE: to do, or may be not.



488
489
490
# File 'lib/HDLRuby/std/sequencer_sw.rb', line 488

def sslice_after(pattern = nil,&ruby_block)
  raise "sslice_after is not supported yet."
end

#sslice_before(*args, &ruby_block) ⇒ Object

HW implementation of the Ruby slice_before. NOTE: to do, or may be not.



494
495
496
# File 'lib/HDLRuby/std/sequencer_sw.rb', line 494

def sslice_before(*args,&ruby_block)
  raise "sslice_before is not supported yet."
end

#sslice_when(*args, &ruby_block) ⇒ Object

HW implementation of the Ruby slice_when. NOTE: to do, or may be not.



500
501
502
# File 'lib/HDLRuby/std/sequencer_sw.rb', line 500

def sslice_when(*args,&ruby_block)
  raise "sslice_before is not supported yet."
end

#ssort(&ruby_block) ⇒ Object

HW implementation of the Ruby sort.



510
511
512
# File 'lib/HDLRuby/std/sequencer_sw.rb', line 510

def ssort(&ruby_block)
  return self.seach.ssort(&ruby_block)
end

#ssort_by(&ruby_block) ⇒ Object

HW implementation of the Ruby sort.



515
516
517
# File 'lib/HDLRuby/std/sequencer_sw.rb', line 515

def ssort_by(&ruby_block)
  return self.seach.ssort_by(&ruby_block)
end

#ssort_merge(arI, arO, first, middle, last, &ruby_block) ⇒ Object

Merge two arrays in order, for ssort only.



505
506
507
# File 'lib/HDLRuby/std/sequencer_sw.rb', line 505

def ssort_merge(arI, arO, first, middle, last, &ruby_block)
  return self.seach.ssort_merge(arI,arO,first,middle,last,&ruby_block)
end

#ssum(initial_value = nil, &ruby_block) ⇒ Object

HW implementation of the Ruby sum.



520
521
522
# File 'lib/HDLRuby/std/sequencer_sw.rb', line 520

def ssum(initial_value = nil,&ruby_block)
  return self.seach.ssum(initial_value,&ruby_block)
end

#stake(n) ⇒ Object

The HW implementation of the Ruby take.



525
526
527
# File 'lib/HDLRuby/std/sequencer_sw.rb', line 525

def stake(n)
  return self.seach.stake(n)
end

#stake_while(&ruby_block) ⇒ Object

The HW implementation of the Ruby take_while.



530
531
532
# File 'lib/HDLRuby/std/sequencer_sw.rb', line 530

def stake_while(&ruby_block)
  return self.seach.stake_while(&ruby_block)
end

#stally(h = nil) ⇒ Object

HW implementation of the Ruby tally. NOTE: to do, or may be not.



536
537
538
# File 'lib/HDLRuby/std/sequencer_sw.rb', line 536

def stally(h = nil)
  raise "stally is not supported yet."
end

#sto_aObject

HW implementation of the Ruby to_a.



370
371
372
# File 'lib/HDLRuby/std/sequencer_sw.rb', line 370

def sto_a
  self.seach.sto_a
end

#sto_h(h = nil) ⇒ Object

HW implementation of the Ruby to_h. NOTE: to do, or may be not.



542
543
544
# File 'lib/HDLRuby/std/sequencer_sw.rb', line 542

def sto_h(h = nil)
  raise "sto_h is not supported yet."
end

#suniq(&ruby_block) ⇒ Object

HW implementation of the Ruby uniq.



547
548
549
# File 'lib/HDLRuby/std/sequencer_sw.rb', line 547

def suniq(&ruby_block)
  return self.seach.suniq(&ruby_block)
end

#szip(obj, &ruby_block) ⇒ Object

HW implementation of the Ruby zip. NOTE: for now szip is deactivated untile tuples are properly handled by HDLRuby.



554
555
556
# File 'lib/HDLRuby/std/sequencer_sw.rb', line 554

def szip(obj,&ruby_block)
  return self.seach.szip(obj,&ruby_block)
end